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)
}
Я не могу понять, какой вариант правильный (С++ 03).