gpt4 book ai didi

c++ - 如何初始化 static const char* enum type traits 数组?

转载 作者:行者123 更新时间:2023-11-28 07:51:51 25 4
gpt4 key购买 nike

我在外部 sdk 中遇到过这样的 header :

// external.h
//
template <class T> class MyBaseEnum
{
public:
/** String list. */
static const char *mStrings[];

//! Constructor.
inline MyBaseEnum(){}

//! Destructor.
inline ~MyBaseEnum()
{

}
};

我已经看到这个类在另一个 header 中的同一个 sdk 中使用,如下所示:

// foo.h
//
class Foo
{
enum MyEnum
{
A = 0,
B,
C
};
typedef MyBaseEnum< MyEnum > MyEnumType;

MyEnumType bar;
};

我无法访问相应的 cpp 文件来查看 mStrings 是如何为 bar 初始化的,但我认为这与类型特征有关。

foo.cpp 中正确初始化 MyEnumType::mStrings 的语法是什么样的?

最佳答案

由于 MyBaseEnum 是一个模板类,mStrings 成员不能在单独的源文件中定义。它必须在包含的头文件中完成,因为定义需要模板参数。

语法与定义任何其他字符串数组基本相同:

template<class T>
const char* MyBaseEnum<T>::mStrings = { ... };

关于c++ - 如何初始化 static const char* enum type traits 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13618922/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com