c++ - C++ 03中如何引用实例化模板函数的地址?

标签 c++

假设&没有重载。如何获取实例化模板函数的地址,如std::sort<int*> ?以下不会在某些编译器上编译:

#include <algorithm>
int main()
{
    &std::sort<int*>;
}

在 MSVC v19.21 上,它报告:https://godbolt.org/z/gpZCdn

error C2568: 'identifier': unable to resolve function overload

最佳答案

你可以使用

&std::sort<int*>;

&std::sort<int>不起作用,因为类型需要可取消引用。

可以通过执行显式转换来解决歧义。

static_cast<void (*)(int*, int*)>(&std::sort<int*>);

关于c++ - C++ 03中如何引用实例化模板函数的地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57087276/

相关文章:

c++ - 强制 GCC 执行 memcpy 运行时大小检查的循环取消切换?

c++ - 你能在同一个 block 中的互斥体 lock_guard 之前有代码吗

c++ - 如何 reshape 矩阵?

c++ - WXWidgets 事件参数

c++ - 为什么在asio的示例中,tcp接受器模式使用shared_pointer模型包装堆套接字,而udp使用堆栈套接字?

c++ - 从主窗口事件处理程序调用后如何在子窗口中创建按钮?

c++ - 如何解码重复的无符号 MSB 和 LSB 8 位字?

c++ - 如何在 C++ 中将位图 16 位 RGBA4444 转换为 16 位灰度?

c++ - 如何直接访问类的私有(private)成员?

c++ - 每行显示输出 4