0
struct var
にはメンバーstd::unordered_map<var, var>
がありますか?std :: unordered_map <Class、Class>をClassのメンバーとして持つことは可能ですか?
namespace json
{
struct var;
using dict = std::unordered_map<var, var>;
struct var
{
int integer = 0;
std::string string = "";
dict json_dict = dict();
}
}
namespace std
{
template<> struct hash<json::var>
{
std::size_t operator()(const json::var& k) const
{
return hash<string>()(k.string);
}
};
}
は、好ましくは、ポインタを使用せずに解決策はあります:hash<json::var>
はdict json_dict = dict();
の使用後に宣言されているので、ここで
がコンパイルされていないコード例ですか?
これは、libC++の 'std :: unordered_map'が不完全な型を許可するためにのみ動作するということを付け加えたいと思います。これは現在、例えばlibstdC++では動作しません。 –