キャスト演算子(operator T)の先頭にexplicitを付けることによって
暗黙のキャストを防ぐことができるようになる
class Y {}; struct Z { explicit operator Y() const; // ... }; void h(Z z) { Y y1(z); // OK Y y2 = z; // エラー! Y y3 = (Y)z; // OK }
キャスト演算子(operator T)の先頭にexplicitを付けることによって
暗黙のキャストを防ぐことができるようになる
class Y {}; struct Z { explicit operator Y() const; // ... }; void h(Z z) { Y y1(z); // OK Y y2 = z; // エラー! Y y3 = (Y)z; // OK }