問題タブ [explicit-constructor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
91 参照

c++ - ポインター型の CTOR を明示的に指定する必要がありますか?

この場合、必要ですかexplicit

コンストラクタを としてマークしなくても、次のようexplicitに書くとコンパイル エラーになると思います。

ポインターからオブジェクトへの暗黙的な変換は、コンストラクターを介してまったく不可能ですよね?

0 投票する
0 に答える
246 参照

c++ - ミューテックスからの明示的な std::unique_lock コンストラクター

ミューテックスを取るコンストラクターのオーバーロードがマークされていることがわかりますexplicit。そのように指定する理由がわかりません。ミューテックスから対応する への暗黙的な変換を許可しても害はないと思いますstd::unique_lock。これは実際に便利です。たとえば、void func_a(std::unique_lock<std::mutex> lock)andが与えられた場合、likestd::mutex mutを直接呼び出すことができます。通話に関して潜在的な害は何ですか? ユーザーを驚かせるような効果はないと思います。したがって、問題は次のとおりです。コンストラクターをマークする理由は何ですか?func_amutfunc_a(mut)func_a(mut)explicit

0 投票する
5 に答える
4001 参照

c++ - コンストラクターでの望ましくない変換を防止する

ここによると、explicit

暗黙的な変換またはコピー初期化を許可しないコンストラクターと変換演算子 (C++11 以降) を指定します。

したがって、これらの 2 つの手法は同一ですか?

0 投票する
4 に答える
12294 参照

c++ - 複数の引数を取る明示的なコンストラクター

複数の引数explicitを持つコンストラクターを作成すると、(有用な) 効果がありますか?

例:

0 投票する
1 に答える
300 参照

c++ - 明示的なコンストラクターの継承 (インテル C++)

インテル C++ コンパイラ (バージョン 16.0.3.207 ビルド 20160415)は、基本クラスのコンストラクターがusingで継承されている場合、明示的な指定子をドロップするようです。これはバグですか?