gpt4 book ai didi

c++ - Clang 错误,没有可行的转换

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:04:17 25 4
gpt4 key购买 nike

我正面临 clang 3.1 的问题。 GCC 4.2 不会出现此特定问题。以下是发生错误的示例:

#include <stdio.h>
#include <iostream>
#include <sstream>
#include <string>

typedef unsigned short char16_t;
typedef char16_t TCHAR;

typedef std::basic_string<TCHAR, std::char_traits<TCHAR>, std::allocator<TCHAR> > wstringT;

template<class T>
inline wstringT MyTestFunction(const T& source)
{
std::wstringstream out;
out << source ;
return out.str(); // error occurs here
};

错误信息指出:

No viable conversion from '__string_type' (aka 'basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >') to 'wstringT' (aka 'basic_string<TCHAR, std::char_traits<TCHAR>, std::allocator<TCHAR> >')

代码是使用编译器标志 -fshort-wchar 编译的,它应该将 wchar_t 转换为 16 位无符号短整型。我正在 XCode v4.3.2 上编译代码。

最佳答案

如果你想使用TCHAR您必须展开每个模板才能使用它,包括 wstringstream你实际上想要一个 basic_stringstream<TCHAR>或者你可以:

typedef std::basic_stringstream<TCHAR> tstringstream;

关于c++ - Clang 错误,没有可行的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12955878/

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