替代字符数组作为模板参数的输入

Alternative to char array as input to template parameter

本文关键字:参数 输入 字符 数组      更新时间:2023-10-16
static constexpr char MyCharArray[] = "yolo";
template<const char* CharArray>
struct MyStruct {
    //Do stuff
};
int main()
{
    MyStruct<MyCharArray> myStruct;
}

这很好用,但我想在第一行"清理"我的字符数组。它很丑陋。有没有使用 char 数组的替代方法,这样我的代码仍然可以编译和工作。谢谢

我能为你想出的最好的:

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

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

-

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