小编gru*_*tor的帖子

函数模板重载clang ++

g ++ 4.8.1和clang ++ 3.4为下一个代码提供了不同的结果:

// simplified code from a Logger module
#include <iostream>

template<class T> void tf(const T*) {  // clang++ 
    std::cout << "void tf(const T*)\n"; 
}

template<class T> void tf(T) {  // g++
    std::cout << "void tf(T)\n"; 
}

int main(){ 
    typedef std::ios_base& (*ph)(std::ios_base&);
    ph p = std::hex;
    tf(p); // or just tf(std::hex)
}
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚哪个变体是正确的(C++ 03).

c++ templates clang++

13
推荐指数
2
解决办法
248
查看次数

标签 统计

c++ ×1

clang++ ×1

templates ×1