我一直试图迫使实例如下:函数模板实例失败
//A.h
namespace A {
template <typename T>
bool foo (B::C<T>, D);
}
template bool A::foo<int> (B::C<int>, D);
//1.cpp
namespace A {
template <typename T>
bool foo (B::C<T>, D) {
return false;
}
}
// 2.cpp
#include "A.h"
using namespace A;
void foo()
{///
...
B::C<int> Alpha;
foo(Alpha, Beta);
}
的错误我得到的消息是:
C2785:不同的返回类型
C4667:未定义匹配强制实例化的功能模板
这个实例化有什么惊人的错误,因为这些错误消息看起来并不相关。
实现它首先需要在一个文件中定义模板函数。 – gibraltar
您的代码不完整 - “不同的返回类型”错误表明“B :: C”模板类中可能存在问题。 –
我认为代码的错误部分是在实际的实例中。然而,你可能是对的,错误不在这段代码中,因为我重新创建并成功编译了一个类似的例子。 – ozon