C++ std::list 具有默认值的参数

C++ std::list paramerter with default values

我想要一个将列表作为参数的方法,但这个列表应该有默认值,这是我需要的一个无效示例:

void myFunc(std::list<CString> const & myList = std::list<CString>({"Val1", "Val2", "Val3"}));

当我尝试使用它时,我得到了

Error C2143: syntax error: missing ')' before '{'

微软 Visual Studio 2010 does not support std::initializer_list。当你这样做时

std::list<CString>({"Val1", "Val2", "Val3"})

您尝试使用 std::initializer_list 构造函数初始化 std::list。由于 MSVS 2010 不支持您可以调用它。

您可以做的一件事是编写一个函数来创建和初始化一个列表,例如

std::list<CString> default_list()
{
    std::list<CString> temp;
    temp.push_back("Val1");
    temp.push_back("Val2");
    temp.push_back("Val3");
    return temp;
}

然后你可以像这样使用它

void myFunc(std::list<CString> const & myList = default_list());