C++ 오브젝트가 time_t인지 여부를 판별하려면 어떻게해야합니까? 정수형 time_t는 다음과 같이 정의됩니까? 일체형하는 time_t가 전달되는 것으로 정의 할 때 특화되지 않은 함수가 호출됩니다C++ 오브젝트가 time_t인지 판별하는 방법
template <typename T> void myFunction(T val);
template<> void myFunction<time_t>(time_t val);
있도록 내가 특별히 기능을 전문 템플릿 할
.
내 STL 구현은 time_t
을 long
으로 정의하므로 myFunction(42L)
은 time_t 전문화를 호출합니다. 이 문제를 어떻게 방지 할 수 있습니까?
long
을 전문적으로 사용해 보았습니다. 결과적으로 컴파일 오류가 발생합니다 (본문은 이미 정의되어 있습니다). 나는 또한 rtti를 시도했다, typeid(time_t).name()
는 "long"
를 돌려 보낸다.
time_t
과 정수형을 구별 할 수 있습니까? 그리고/또는 템플릿이 정수형이 특성화에 전달되지 않도록 time_t를 전문화 할 수 있습니까?
템플릿을 사용하는 것이 더 좋지만 솔루션, 런타임 또는 컴파일 타임을 허용합니다.
[Dobbs 박사가 제공 한 강력한 typedef 구현] (0120-943-2400) –
Ben, 대답했으면 좋았을 텐데 .. – sarnold