我正在尝试编写一个可以同时处理char和amp; wchar_t使用C 0x的type_traits功能.是的,我知道如何在没有type_traits的情况下完成它,但我想使用type_traits来更好地理解该功能.
template <typename T> void SplitIt(T* base,T* ext,const std::basic_string<T>& fullFilePath,std::true_type) { _splitpath(fullFilePath.c_str(),NULL,base,ext); } template <typename T> void SplitIt(T* base,std::false_type) { _wsplitpath(fullFilePath.c_str(),ext); } template <typename T> std::basic_string<T> GetBaseName(const std::basic_string<T>& fullFilePath) { T base[300],ext[50]; SplitIt(base,ext,fullFilePath,/*What goes here?*/); return std::basic_string<T>(buf) + ext; } int main() { std::basic_string<TCHAR> baseName = GetBaseName(std::basic_string<TCHAR>(__FILE__)); }
是否有任何type_traits属性可以区分char和wchar_t?