조건부 Explicit 생성자
조건에 맞는 경우에만 암시적 형변환을 허용 하겠다!
explicit(조건)
조건 설정class CTest
{
template<typename T>
explicit(!std::is_same<T, bool>::value) Test(T t)
{
...
}
...
}
void MyFucn(CTest test)
{
...
}
CTest test = true;
MyFucn(test); // OK!
MyFucn(true); // OK! 조건에 맞는 bool 타입 이기 때문에 암시적 형변환 허용!
MyFucn(10); // Error! 조건에 맞지 않는 int 타입 이기 때문에 암시적 형변환 불가!