我正在尝试使用模板结构实现一个简单的系统,代码非常简单并且可以使用 MSVC 编译良好,但我无法理解为什么 CLANG 给我这个错误:“lld-link : error : undefined symbol: public: static struct FMyStruct常量 TSpec<1>::m_struct"
我在 Windows 64 位机器上使用 VisualStudio IDE 进行编译,但使用 CLANG LLVM 作为编译器。该代码在 MSVC 中运行良好。我将问题简化到最低限度,我尝试将所有内容放入一个 cpp 文件中,但没有结果。我还尝试了显式模板实例化。我想要兼容 C++14,而不是 C++17。我尝试过的一件事是,将 m_struct 成员声明为内联变量,但随后我收到此警告:“内联变量是 C++17 扩展”
struct FMyStruct
{
const int _p0;
const int _p1;
const int _p2;
};
template< int > struct TSpec {
static constexpr FMyStruct m_struct = { 0, 0, 0 };
};
FMyStruct
Function( int i )
{
return TSpec< 1 >::m_struct;
}
int main()
{
return …Run Code Online (Sandbox Code Playgroud)