7
私はクラスA
にinitializer_list
があり、それをメンバ変数として格納しています。std :: initializer_listをメンバ変数として使用
class A
{
public:
A(std::initializer_list<std::string> il) :
m_il(il)
{}
std::initializer_list<std::string> m_il;
};
別のクラスB
デフォルトはinitializer_list
class B
{
public:
B()
{
std::cout << *m_a.m_il.begin() << std::endl;
}
A m_a { "hello", "bye" };
};
を使用して初期化されたメンバ変数としてA
を持っている私がメインでこのコードを実行すると、それは何も出力しません。
int main()
{
B b;
}
なぜ上記のコードではhello
が印刷されませんでしたか?私の使用方法はstd::initializer_list
ですか?
データメンバとして 'initializer_list'を使用しないでください。 – 0x499602D2
非静的なクラスメンバを初期化することは、[ここ](http://en.cppreference.com/w/cpp/utility/initializer_list)でも、基本となる一時的なライフの寿命を特に延ばすものではありません – Useless