ここによると、explicit
:
暗黙的な変換またはコピー初期化を許可しないコンストラクターと変換演算子 (C++11 以降) を指定します。
したがって、これらの 2 つの手法は同一ですか?
struct Z {
// ...
Z(long long); // can initialize with a long long
Z(long) = delete; // but not anything smaller
};
struct Z {
// ...
explicit Z(long long); // can initialize ONLY with a long long
};