代码之家  ›  专栏  ›  技术社区  ›  muaz

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

  •  1
  • muaz  · 技术社区  · 8 年前

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

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

    当我尝试使用它时

    1 回复  |  直到 8 年前
        1
  •  2
  •   NathanOliver    8 年前

    Micrsoft Visual Studio 2010 does not support std::initializer_list .当你这么做的时候

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

    您尝试初始化 std::list std::initializer\u列表 构造函数。因为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());