1

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)」は暗黙的な変換であり、明示的な変換関数を使用できないと思っていたでしょう。それでは、許可されない暗黙的な変換の例は何でしょうか?

4

2 に答える 2