cppreference.com によると、暗黙的な変換に明示的な変換関数を使用することはできません。例として、彼らはこれを持っています:
struct B
{
explicit B(int) { }
explicit B(int, int) { }
explicit operator bool() const { return true; }
};
int main()
{
...
if (b2) ; // OK: B::operator bool()
...
}
「if (b2)」は暗黙的な変換であり、明示的な変換関数を使用できないと思っていたでしょう。それでは、許可されない暗黙的な変換の例は何でしょうか?