char数组的替代方法作为模板参数的输入

时间:2016-05-10 23:08:47

标签: c++

static constexpr char MyCharArray[] = "yolo";

template<const char* CharArray>
struct MyStruct {
    //Do stuff
};

int main()
{
    MyStruct<MyCharArray> myStruct;
}

这很好用,但我想在第一行“清理”我的char数组。这很难看。有没有使用char数组的替代方法,这样我的代码仍然可以编译和工作。谢谢

1 个答案:

答案 0 :(得分:0)

我能为你找到最好的:

  1. 删除关键字static - 不需要

  2. 使用typedef缩短MyCharArray的定义。

  3. -

    using chars = const char[];
    
    constexpr chars MyCharArray = "yolo";
    
    template<const char* CharArray>
    struct MyStruct {
        //Do stuff
    };
    
    int main()
    {
      MyStruct<MyCharArray> myStruct;
    }