次の型特性が与えられた場合、Fields
いくつかstd::pair
の s で初期化するにはどうすればよいですか?
template <>
struct ManagerDataTrait<Person>
{
static const std::unordered_map<std::string, std::string> Fields;
// ...
};
ラムダを使用してみましたが、Visual Studio はFields
明示的に特殊化できるエンティティではないと言っています。
template <>
const std::unordered_map<std::string, std::string> ManagerDataTrait<Person>::Fields = []{
std::unordered_map<std::string, std::string> fields;
fields.insert(std::make_pair("height", "FLOAT"));
fields.insert(std::make_pair("mass", "FLOAT"));
return fields;
};
特性でこのような静的メンバーを使用する方法がない場合、特性に情報を格納するためにどの代替手段が必要ですか? ( Fields
SQL データベース構造を保持します。)
更新:メンバーもそうかもしれませconst
んが、それは重要ではありません.