使用结构非类型可变参数模板参数初始化结构的字符串数据成员

时间:2015-03-01 17:38:22

标签: c++ templates metaprogramming

我试图创建一个接收非类型可变参数模板参数的结构。我试图用这些模板参数初始化一个字符串,该字符串是这个结构的数据成员,如下所示:

    template <char... Chs>
    struct MyStruct
    {
        string d_text;
    };

    int main()
    {
         cout << MyStruct<'a','b'>().d_text << '\n';
    }

根据我的要求,MyStruct的构造函数应该怎么做才能初始化d_text?提前谢谢。

1 个答案:

答案 0 :(得分:0)

假设您的问题是关于初始化d_text,您可以使用std::string s std::initializer_list<char> constructor以及参数包扩展。

template <char... Chs>
struct MyStruct
{
    string d_text;
    MyStruct() : d_text({Chs...}){}
};

Coliru demo