假设我有一个专门的模板化函数,所以我真的不关心基本实现。我可以做这样的事情:
template <typename T>
T dummy() {
assert(false);
return declval<T>();
}
当我尝试在visual-studio-2017中执行此操作时,出现链接错误:
函数中引用的未解析的外部符号
char const && __cdecl std::declval<char const >(void)
(??$declval@$$CBD@std@@YA$$QEBDXZ)char const __cdecl dummy<char const>()
同样,这个函数没有被调用,但我确实保存了一个指向它的指针。我可以return T{}
改用它,并且可以编译,但即使没有默认构造函数,我也需要它来工作T
。有没有办法解决这个问题?