gpt4 book ai didi

c++ - 在使用 boost::assign::list_of 时声明时不能被非常量表达式初始化

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:08:10 24 4
gpt4 key购买 nike

我正在尝试使用 boost::assign::list_of() 在类中声明静态集。

MyClass.h

class MyClass
{
public:
static std::set<std::string> & formats_set();
private:
static const std::set<std::string> formats_;
}

MyClass.cpp

const std::set<std::string> MyClass::formats_ = boost::assign::list_of(
"Format1"
,"Format2"
,"Format3");

但是 - 当我尝试编译时出现错误‘MyClass::formats_’在声明时不能被非常量表达式初始化

有什么办法可以解决这个问题吗?谢谢!

最佳答案

现在让我们用正确的语法试试:

#include <string>
#include <set>
#include <boost/assign/list_of.hpp> // for 'list_of()'

class MyClass
{
public:
static std::set<std::string> & formats_set();
private:
static const std::set<std::string> formats_;
};

const std::set<std::string> MyClass::formats_ = boost::assign::list_of
("Format1")
("Format2")
("Format3");

关于c++ - 在使用 boost::assign::list_of 时声明时不能被非常量表达式初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46366538/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com