C++11 むずい
問.次のコードを実行すると何が出力されるでしょうか。
[ソース]
#include <iostream> template<typename T> void func(T&&){ std::cout << "T&&" << std::endl; } struct X{}; void func(X const&){ std::cout << "X const&" << std::endl; } int main(){ X x; func(x); func(X{}); return 0; }
出力はここには書きませんが、考えていた出力と違っていた C++er な人は結構いるんじゃないでしょうか。
言われると理由は分かるんだけども、なんというか歯がゆい。
func(T&&); が全然別の箇所で定義されているとはまる人が多いだろうなぁ…。
(ってか、実際わたしがハマった。