3

次のクラスは、CRTP を使用して、初期化順序を保証する Schwarz カウンターを持つ std::vector に型を追加しようとします。3.6.2/2 によると、メンバー h_ には順序付けられていない初期化があります。これを変更して、初期化が行われたことを確認するにはどうすればよいですか? 派生クラスは、クラスから正しく継承するだけで済みます。

#ifndef P_H_
#define P_H_

#include "PR.h"

template <typename T>
class P
{
   class helper
   {
   public:
      helper()
      {
         PR.push_back(typeid(T));
      }
   };
   static helper h_;
};

template <typename T>
typename P<T>::helper P<T>::h_;

#endif
4

1 に答える 1