如何在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); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |