c – 是否可以使用type_traits来区分char和wchar_t?
发布时间:2020-12-16 03:47:08 所属栏目:百科 来源:网络整理
导读:我正在尝试编写一个可以同时处理char和amp; wchar_t使用C 0x的type_traits功能.是的,我知道如何在没有type_traits的情况下完成它,但我想使用type_traits来更好地理解该功能. template typename Tvoid SplitIt(T* base,T* ext,const std::basic_stringT fullF
我正在尝试编写一个可以同时处理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? 解决方法
我认为有一个is_same属性,所以
SplitIt(base,is_same<T,char>()); 应该管用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |