C++使用默认值
问题描述:
我想有取一个列表作为参数的方法,但这个名单应该有默认值的std ::列表paramerter,这里是什么,我需要一个无效的例子:C++使用默认值
void myFunc(std::list<CString> const & myList = std::list<CString>({"Val1", "Val2", "Val3"}));
当我尝试使用它时,我得到
Error C2143: syntax error: missing ')' before '{'
答
Micrsoft 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());
,你可以检查它是否是空的,初始化那个.. –
你怎么知道这个尝试是无效的?你会得到什么错误? –
它有什么问题?我不知道'CString'是什么,但否则你的方法[似乎很好](http://ideone.com/oT4uR4) – user463035818