Je cherche le code d'un fichier distribué par Adobe:C++ type accès à la valeur d'un unordered_map
La partie du code que je suis intéressé est:
struct any_json_helper_t {
typedef any value_type;
typedef string key_type;
typedef string string_type;
typedef unordered_map<key_type, value_type> object_type;
typedef vector<value_type> array_type;
typedef object_type::value_type pair_type;
Erreur:
clang++ -o json json.cpp -std=c++14
json.cpp:105:13: error: no type named 'value_type' in 'std::__1::unordered_map<std::__1::basic_string<char>, any,
std::__1::hash<std::__1::basic_string<char> >, std::__1::equal_to<std::__1::basic_string<char> >,
std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, any> > >'; did you mean simply 'value_type'?
typedef object_type::value_type pair_type;
^~~~~~~~~~~~~~~~~
value_t
json.cpp:100:17: note: 'value_type' declared here
typedef any value_type;
Est-ce que je fais quelque chose de mal? (il semble utiliser implicitement any
au lieu de value_type
et ne peut donc pas trouver object_type::value_type
). Comment pourrais-je faire ce travail (en plus d'utiliser value_type
directement, bien sûr, comme suggéré par le compilateur)?
EDIT
any
ne sont pas disponibles en C++ 14 (tel que mentionné dans une réponse). J'ai implémenté ma propre version dans ce cas particulier.
struct any
{
public:
any() : ptr(nullptr) {}
private:
struct base_t
{
virtual ~base_t() {}
};
base_t* ptr { nullptr };
};
Désolé j'ai mis en place mon propre ;-) J'aurais dû mentionner que ... et cela pourrait être où le problème est? – user18490
Oui, pourrait être là! Montrez votre implémentation personnalisée de n'importe quelle classe svp! – Rama
Je l'ai dépouillé, et le problème est toujours là ... (voir edit) – user18490