的静态变量是我的代码:未定义引用类模板下面
// types.h
template <typename T>
struct type_to_char {};
template <>
struct type_to_char<char> {
static constexpr char str[] = "baz";
};
// main.cpp
#include <iostream>
#include <string>
#include "types.h"
int main() {
std::cout << type_to_char<char>::str << std::endl;
return 0;
}
在尝试编译,链接器返回一个错误: undefined reference to type_to_char<char>::str
我也遇到过this answer,但我不知道如何应用它在我的情况下,因为模板没有编译。我应该在项目中放置一个单独的文件.cpp
吗?
constexpr
变量的声明和定义有什么区别?这样的变量不能在没有初始化器的情况下声明,那么为什么我应该在一个.cpp
文件中放置一个单独的定义?
我希望在这个