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());
我想要一个将列表作为参数的方法,但这个列表应该有默认值,这是我需要的一个无效示例:
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());