C++オブジェクトがtime_tであるかどうかを判断するには、time_tが整数型ではなく?C++オブジェクトがtime_tであるかどうかを判断する方法
私は、特に非特殊関数がとき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を特化していますか?
テンプレートを使用する方法が望ましいでしょうが、解決方法、実行時またはコンパイル時は受け入れます。
あなたは[ドブス博士が提供する強力なtypedefの実装](http://drdobbs.com/184401633) –
ベン、私はそれが答えだったらいいと思う.. – sarnold