[C++11] explicit conversion functions
`explicit` 키워드는 명시적이라는 의미를 내포하고 있다. `explicit conversion functions`은 명시적 변환 함수를 의미하며 변환 함수에 `explicit` 키워드를 붙임으로써 암시적으로 호출되는 변환 함수를 막겠다는 의미다. 다음 같은 상황을 보도록 하자. #include struct A { operator bool() const { return true; } }; struct B { explicit operator bool() const {return true;} }; int main(void) { A a; if (a); // Ok calls A::operator bool() bool aaa = a; // OK A::operator bool() is called B b; i..
C++/Modern C++(11, 14, 17, 20)
2023. 8. 24. 15:58