2011-04-13

std::nullptr_tの型はポインターではない。

以下のコードを考えてもらいたい。果たして、値はtrueかfalseかどちらだろうか。

std::is_pointer<decltype(nullptr)>::value ;

これはfalseである。なぜならば、nullptrの型、decltype(nullptr)のtypedef名であるstd::nullptr_tは、ポインター型ではないからだ。もちろん、メンバーへのポインター型でもない。std::nullptr_tは、nullポインターに変換可能なprvalueの定数という扱いになっている。

No comments:

Post a Comment

You can use some HTML elements, such as <b>, <i>, <a>, also, some characters need to be entity referenced such as <, > and & Your comment may need to be confirmed by blog author. Your comment will be published under GFDL 1.3 or later license with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.