c – 是否可以使用type_traits来区分char和wchar_t?

前端之家收集整理的这篇文章主要介绍了c – 是否可以使用type_traits来区分char和wchar_t?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试编写一个可以同时处理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>());

应该管用.

猜你在找的C&C++相关文章