Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 存储指向专用模板函数的指针值_C++_Templates_Metaprogramming_Undefined Behavior_Rtti - Fatal编程技术网

C++ 存储指向专用模板函数的指针值

C++ 存储指向专用模板函数的指针值,c++,templates,metaprogramming,undefined-behavior,rtti,C++,Templates,Metaprogramming,Undefined Behavior,Rtti,我想使用一些可比较的类型表示,它不像std::is_same那样直接,也不使用RTTI\uuuu PRETTY\u函数\uuuuu宏为匿名命名空间中不同.cpp文件中定义的具有相同名称的两个不同类提供相同的字符串,比较字符串速度较慢 让我们考虑一下这样的代码: template<typename T> void func() {} int main() { std::cout << reinterpret_cast<size_t>(&func

我想使用一些可比较的类型表示,它不像std::is_same那样直接,也不使用RTTI<代码>\uuuu PRETTY\u函数\uuuuu宏为匿名命名空间中不同.cpp文件中定义的具有相同名称的两个不同类提供相同的字符串,比较字符串速度较慢

让我们考虑一下这样的代码:

template<typename T>
void func() {}

int main() {
    std::cout << reinterpret_cast<size_t>(&func<int>) << std::endl;
    std::cout << reinterpret_cast<size_t>(&func<float>) << std::endl;
}
模板
void func(){}
int main(){

std::cout首先,您试图解决的真正问题是什么?为什么要这样做?相关阅读。第二,如果您想要整数类型存储指针,请使用
uintptru\t
。记住,在大多数系统上,函数指针与普通指针相同,但有些系统和平台这里它们是不一样的。我试图制作
std::any
副本,在没有RTTI和异常的情况下可以使用。
std::any
实际上在没有RTTI的情况下可以工作,但这是检查它是否包含具体类型的唯一方法(禁用RTTI)正在使用
std::any_cast
,如果类型不匹配并且异常被禁用,它将终止应用程序。我需要一种机制来检查将包含数据的_cast重新解释为具体类型是否安全。