加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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>());

应该管用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读