以下类使用 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