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 不会编译。