2011-08-24

explicitデフォルトコンストラクターと空の初期化リスト

規格を読む限り、explicitデフォルトコンストラクターを持つクラスを、空の初期化リストでリスト初期化できると思う。

12.3.1 [class.conv.ctor] p2

A default constructor may be an explicit constructor; such a constructor will be used to perform default-initialization or value-initialization (8.5).

とあり、デフォルト初期化か値初期化が可能である。また、リスト初期化で初期化リストが空の場合、

8.5.4 [dcl.init.list] p3

If the initializer list has no elements and T is a class type with a default constructor, the object is value-initialized.

単にデフォルトコンストラクターと言っているので、explicitかどうかは問わないはずだ。

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.