wchar_t 变量前的加号“+”
Plus sign "+" before wchar_t variable
我在cpp参考网站(link)上找到了以下我不完全理解的代码:
void try_widen(const std::ctype<wchar_t>& f, char c)
{
wchar_t w = f.widen(c);
std::cout << "The single-byte character " << +(unsigned char)c
<< " widens to " << +w << '\n';
}
我不明白的是加号“+”在 w 变量 (+w
) 和 (unsigned char)c
(+(unsigned char)c
) 之前是什么意思。有人能给我解释一下吗?
像所有算术运算一样,一元加号触发其操作数的 整数提升。这导致打印字符的数值。没有它,可以选择 operator <<
的不同重载。 << (unsigned char)c
将打印字符而不是数字。我相信 std::cout << w
不会编译。
我在cpp参考网站(link)上找到了以下我不完全理解的代码:
void try_widen(const std::ctype<wchar_t>& f, char c)
{
wchar_t w = f.widen(c);
std::cout << "The single-byte character " << +(unsigned char)c
<< " widens to " << +w << '\n';
}
我不明白的是加号“+”在 w 变量 (+w
) 和 (unsigned char)c
(+(unsigned char)c
) 之前是什么意思。有人能给我解释一下吗?
像所有算术运算一样,一元加号触发其操作数的 整数提升。这导致打印字符的数值。没有它,可以选择 operator <<
的不同重载。 << (unsigned char)c
将打印字符而不是数字。我相信 std::cout << w
不会编译。