2
编译哪个专门的模板我有一个模板函数,它也专门用于内置类型(int,float)。有没有办法显示编译器正在使用哪些函数以及哪些函数正在修剪,在编译时 ??也许使用#pragma ??如何检查在
template<typename T>
int func(T val)
{
...
}
template<>
int func<float>(float val)
{
...
}
// etc
编译哪个专门的模板我有一个模板函数,它也专门用于内置类型(int,float)。有没有办法显示编译器正在使用哪些函数以及哪些函数正在修剪,在编译时 ??也许使用#pragma ??如何检查在
template<typename T>
int func(T val)
{
...
}
template<>
int func<float>(float val)
{
...
}
// etc
你最好的选择是见好就收所有的未定义的功能,看看编译器会引发你什么错误时,它会尝试实例化模板功能。如果您需要多次执行此操作,可能在该代码周围设置#ifdef将允许“转储使用的函数”版本。从那里它将是一个简单的shell脚本或从编译器的错误日志中提取实例化函数的类型的东西。
或者,你可能添加基于模板参数编译错误:
template<typename T>
int func(T val)
{
T::this_version_is_being_included;
}
编译看到最容易的事情中是“编译器错误” –