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

如何在c 11中定义否定UDL(它们是否被禁止?)?

发布时间:2020-12-16 05:28:48 所属栏目:百科 来源:网络整理
导读:我甚至不确定是否允许使用负面的用户定义文字.如果没有,为什么他们被排除在外? 例如,我想使用: auto money_i_owe_jack = -52_jpy; 这是我尝试使用gcc 4.7.2: constexpr int64_t operator "" _jpy(long long l){ return static_castint64_t(l);} 错误 Test
我甚至不确定是否允许使用负面的用户定义文字.如果没有,为什么他们被排除在外?

例如,我想使用:

auto money_i_owe_jack = -52_jpy;

这是我尝试使用gcc 4.7.2:

constexpr int64_t operator "" _jpy(long long l)
{
  return static_cast<int64_t>(l);
}

错误

Test_udl.cpp:60:47: error: ‘constexpr int64_t operator"" _jpy(long long int)’ has invalid argument list

解决方法

整数文字需要被接受为unsigned long long.负号不是文字的一部分,它是在事实之后应用于返回的值.
constexpr int64_t operator "" _jpy(unsigned long long l)
{
  return static_cast<int64_t>(l);
}

(编辑:李大同)

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

    推荐文章
      热点阅读