2017-12-26 15 views
-1

を動作しますが、このような初期化クラスのメンバはありません:制服の初期化は、私は私のクラスで<a href="https://github.com/nlohmann/json" rel="nofollow noreferrer" title="modern json">modern json</a>を使用する場合

Test::Test(json config) : m_config{config} 
{ 
} 

それが仕事とtype::error例外がスローされますが、私はこの

のように初期化メンバーを行うときにはありません
Test::Test(json config) : m_config(config) 
{ 
} 

なぜですか?

+4

私は 'json {std :: initializer_list }'が存在すると思います。 – StoryTeller

答えて

1

the documentationを少し見ました。

コンストラクタを定義するために使用されるのは勿論である
using initializer_list_t = std::initializer_list< detail::json_ref<basic_json> > 
// helper type for initializer lists of basic_json values 

を::

basic_json (initializer_list_t init, bool type_deduction=true, value_t manual_type=value_t::array) 
// create a container (array or object) from an initializer list 

リストの初期化は、上記C」、オーバーロードの解決は最初だけstd::initializer_list c'torsを検討する原因となるので、ここではそれが塗料絵ですtorが一致して呼び出されます。ソースオブジェクトは、リストの初期化を行うときに、jsonクラスの何らかの内部制約に違反しているようです。

他のスニペットでは、コピーc'torが選択されて呼び出されます。

関連する問題

 関連する問題