gpt4 book ai didi

c++ - 在 Visual Studio C++ 6.0 中使用模板函数

转载 作者:行者123 更新时间:2023-11-30 01:23:50 25 4
gpt4 key购买 nike

0亲爱的 StackExchange 社区,

我花了两个小时试图找到问题的根源,但完全失败了。 research=google 搜索也没有提供任何可行的解决方案。至少我能够发现,在 VS 6.0 下,不能在 header 和 .cpp 文件之间拆分模板函数的声明和实现。

也许我的方法本身就有缺陷,或者这次是 VS 6.0 特别令人讨厌。

这是我写的测试代码。

#include "stdafx.h"
#include <string>
#include <iostream>

class TestClass{

public:
template<class T> inline bool isNull(T& inObject){
return 0; // edited because of the answer by Joachim Pileborg :)
// initial code was: return (inObject != NULL) ? 0:1;
}

};

using namespace std;

int main(int argc, char* argv[])
{
cout<<TestClass::isNull<string>("test");
return 0;
}

运行此代码会导致以下错误:

fatal error C1001:INTERNER COMPILER- FEHLER (编译器文件“msc1.cpp”,第 1794 行)

有人知道我在这里做错了什么吗?

附言: 这次我真的很努力地尽可能准确地提出这个问题,并提供了一个具体的例子。如果还有什么我应该添加的,请告诉我。

P.SS:我知道 visual studio 6.0 已经很老了,但我不得不在工作中使用它。使用新的编译器(在家里)运行相同的代码不会导致任何错误。这就是为什么我认为问题主要是由 VS 6.0 的突发奇想引起的。

在此先感谢您的帮助!!京东

最佳答案

除非您定义返回指针的自定义转换运算符,否则对象实例永远不会等于 NULL

关于c++ - 在 Visual Studio C++ 6.0 中使用模板函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14435910/

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