给定以下类型特征,我该如何使用一些 std::pair
初始化 Fields
?
template <>
struct ManagerDataTrait<Person>
{
static const std::unordered_map<std::string, std::string> Fields;
// ...
};
我尝试使用lambda,但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
,但这不应该是重点。