問題タブ [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.
c++ - ポインター型の CTOR を明示的に指定する必要がありますか?
この場合、必要ですかexplicit
:
コンストラクタを としてマークしなくても、次のようexplicit
に書くとコンパイル エラーになると思います。
ポインターからオブジェクトへの暗黙的な変換は、コンストラクターを介してまったく不可能ですよね?
c++ - ミューテックスからの明示的な std::unique_lock コンストラクター
ミューテックスを取るコンストラクターのオーバーロードがマークされていることがわかりますexplicit
。そのように指定する理由がわかりません。ミューテックスから対応する への暗黙的な変換を許可しても害はないと思いますstd::unique_lock
。これは実際に便利です。たとえば、void func_a(std::unique_lock<std::mutex> lock)
andが与えられた場合、likestd::mutex mut
を直接呼び出すことができます。通話に関して潜在的な害は何ですか? ユーザーを驚かせるような効果はないと思います。したがって、問題は次のとおりです。コンストラクターをマークする理由は何ですか?func_a
mut
func_a(mut)
func_a(mut)
explicit
c++ - 複数の引数を取る明示的なコンストラクター
複数の引数explicit
を持つコンストラクターを作成すると、(有用な) 効果がありますか?
例:
c++ - 明示的なコンストラクターの継承 (インテル C++)
インテル C++ コンパイラ (バージョン 16.0.3.207 ビルド 20160415)は、基本クラスのコンストラクターがusingで継承されている場合、明示的な指定子をドロップするようです。これはバグですか?