C++模板成员函数 "identifier not found"

标签 c++

<分区>

当我在 VS2015 上编译此代码时出现以下错误

错误 C3861 “关机”:找不到标识符

template<class T, class... ARG>
class __declspec(dllexport) ThreadManager
{

public:
    void ShutDown();
    ~ThreadManager();
};

template<class T, class... ARG>
void ThreadManager<T, ARG...>::ShutDown()
{
    //do stuff
}

错误在这段代码中

template<class T, class... ARG>
ThreadManager<T, ARG...>::~ThreadManager()
{
    if (isRunning)
        Shutdown();
}

如果我把它改成

template<class T, class... ARG>
ThreadManager<T, ARG...>::~ThreadManager()
{
    if (isRunning)
        this->Shutdown();
}

我收到错误 C2039 'Shutdown': is not a member of 'ThreadManager'

我该如何解决这个问题?

最佳答案

案例问题。您在声明中使用驼峰式大小写 ShutDown,但在析构函数中使用 Shutdown

关于C++模板成员函数 "identifier not found",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42341524/

相关文章:

c++ - 此类代码中 gcc 和 clang 之间的不同行为

c++ - 忽略 C++ 中的浮点上溢和下溢错误

c++ - 如何使用 GitHub 进行 C++ 软件的自动发布/夜间发布?

c++ - dlib-19.1:从图像(例如 dlib::cv_image)初始化 dlib::matrix 以进行 DNN 训练

C++ 替换配置文件中的值

c++ - 如果派生类具有私有(private)变量,则派生类数组不起作用

c++ - 我如何指示 Emscripten 在编译期间应将源文件放置在何处?

c++ - 默认写文件到桌面

c++ - Qt C++ QLabel 可点击鼠标事件不起作用

c++ - 优化 openCL 中的分支 for 循环