我将尝试实例化一组字符串,如下所示:
现在,当我这样做时,我会得到这些错误(都在这一行上):
class POI {
public:
...
static const std::set<std::string> TYPES { "restaurant", "education", "financial", "health", "culture", "other" };
...
}
现在,当我这样做时,我会得到这些错误(都在这一行上):
error: field initializer is not constant
static const std::set<std::string> TYPES { "restaurant", "education", "financial", "health", "culture", "other" };
error: in-class initialization of static data member 'const std::set<std::basic_string<char> > POI::TYPES' of non-literal type
error: non-constant in-class initialization invalid for static member 'POI::TYPES'
error: (an out of class initialization is required)
error: 'POI::TYPES' cannot be initialized by a non-constant expression when being declared
如果我认为集合内的字符串不是被视为常量,那么这就有意义了。这真的是问题所在吗?不幸的是,我找不到一种声明初始化器内的字符串为const的方法..这可能吗?