とくにあぶなくないRiSKのブログ

危ないRiSKのブログだったかもしれない。本当はRiSKだけどググラビリティとか取得できるIDの都合でsscriskも使ったり。

is_rvalue_reference のバグ(?)

次のコード,GCC では通るけど,VC++10 では static_assert に引っかかる。

#include <type_traits>

static_assert(std::is_rvalue_reference<void (&&)()>::value == true, "");

int main(){}

なんか VC++10 のバグっぽくないですか?

追記

なんと, VC++10 と Boost 1.47.0 の組合せでもバグってるっぽ!

#include <boost/type_traits/is_rvalue_reference.hpp>

static_assert(boost::is_rvalue_reference<void (&&)()>::value == true, "");

int main(){}

これも static_assert に引っかかる。

追記

Boost にチケット投げました。初チケット。
#5795 (is_rvalue_reference returns wrong result when rvalue reference to a function is passed) – Boost C++ Libraries
さてどうなるか…。こわい。