gpt4 book ai didi

c++ - "Implicit instantiation of undefined template"前向声明模板类时

转载 作者:IT老高 更新时间:2023-10-28 12:46:26 26 4
gpt4 key购买 nike

我有一些代码需要在其中前向声明一个模板类(或者至少,前向声明对我来说会让事情变得更容易......)。我已经编写了我遇到的问题的简化版本,所以我可以在这里显示它:

template<bool>
class MyTemplateClass;

int main( int argc, char* argv[] )
{
MyTemplateClass<false> myTemp; // error here
myTemp.GetTheValue();
return 0;
}

template<bool bShouldMult>
class MyTemplateClass
{
int m_myint;
float m_myfloat;

public:
MyTemplateClass() : m_myint(5), m_myfloat(3.0f) {}
float GetTheValue()
{
return m_myint * (bShouldMult ? m_myfloat : 1.0f);
}

};

我在注释行遇到的错误是:

Error - implicit instantiation of undefined template 'MyTemplateClass<false>'

我还需要在 MyTemplateClass 的前向声明中包含哪些其他细节?由于错误不是来自下一行,我假设这不是因为方法未定义。我使用的编译器是 LLVM/CLang,我在 Mac 上编译。

最佳答案

你忘了#include什么吗?

我忘记了之后得到了这个

#include <array>

当使用 std::array

:^)

关于c++ - "Implicit instantiation of undefined template"前向声明模板类时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12797051/

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