gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:22:35 24 4
gpt4 key购买 nike

我正在尝试使用 C++0x 的 type_traits 功能编写一个可以同时处理 char 和 wchar_t 的函数。是的,我知道如何在没有 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,NULL,base,ext);
}

template <typename T>
void SplitIt(T* base, T* ext, const std::basic_string<T>& fullFilePath, std::false_type)
{
_wsplitpath(fullFilePath.c_str(),NULL,NULL,base,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, ext, fullFilePath, is_same<T, char>());

应该可以。

关于c++ - 是否可以使用 type_traits 来区分 char 和 wchar_t?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6609676/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com