2013-04-02

is_explicitly_convertibleが消された理由

Fixing is_constructible and is_explicitly_convertible

2010年のドラフトにあったis_explicitly_convertibleは、is_constructibleと完全に等しいということで、消された。

つまり、static_cast<T>(e) ;が可能かどうかと、T t(e) ;が可能かどうかは、全く同じだという事だ。

3 comments:

  1. // つまり、static_cast(e) ;が可能かどうかと、T t(e) ;が可能かどうかは、全く同じ

    ちょっと考えただけでも

    void* const p = new double();
    static_cast(p); // valid

    とかある件について

    ReplyDelete
  2. <int*> がタグ扱いされて無視された….
    static_cast<int*>(p) です

    ReplyDelete
  3. 直接関係あるかは微妙ですが
    auto y = T(x);

    auto y = reinterpret_cast<T>(x);
    と殆ど同じで危険,というのは見落としやすい点ですね.

    ReplyDelete

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.