기본 콘텐츠로 건너뛰기

라벨이 암묵인 게시물 표시

C++ explicit

보이지 않는 위험, 암묵적 형변환. C로부터 계승해온 아주 멋지구리한 녀석이지. 뭐, 나름대로 편하긴 해도 벌레 잡을 때 그지 같단 말이지. 아래 코드를 보자. #include <iostream> using namespace std; // -DDO_EXP 를 컴파일 옵션에 넣으면 실험할 수 있다. #if !defined(DO_EXP) #   define EXPLICIT #else #   define EXPLICIT explicit #endif // 몇몇 정보를 찍는 함수 template<typename _T> static void _showme(const char* fn, void* ptr, const _T& val) {     cout << fn << '(' << ptr << "): " << val << endl; } // 몇몇 정보를 찍는 매크로 #define showme(h) _showme(__PRETTY_FUNCTION__, \     this, \     (h) ) // 내 클래스 class CMyClass { public:     // 생성자1 - a     EXPLICIT CMyClass()     {         showme(this);     }     // 생성자2 - b     EXPLICIT CMyClass(int h)     {         showme(h);     }   ...