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&&); が全然別の箇所で定義されているとはまる人が多いだろうなぁ…。
(ってか、実際わたしがハマった。


答え