首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在C++中使用auto关键字为uint32_t或uint64_t类型的变量赋值

如何在C++中使用auto关键字为uint32_t或uint64_t类型的变量赋值
EN

Stack Overflow用户
提问于 2019-01-09 00:40:19
回答 2查看 1.6K关注 0票数 8

auto var = 5u;为例。在这里,我使用后缀u,因此var将被推导为unsigned int。对于uint32_tuint64_t类型,有什么方法可以实现类似的功能吗?C++11或C++14中是否有后缀?

EN

回答 2

Stack Overflow用户

发布于 2019-01-09 01:07:46

我假设您正在使用Herb Sutter建议的AAA style

在这种情况下,一个很好的解决方案是简单地编写:

代码语言:javascript
复制
auto variable_name = uint64_t{ 5000000000 };

这是明确的、一致的、显式类型的,不需要讨厌的C预处理器。

编辑:如果您想在使用文字时绝对确定,可以将an appropriate suffix添加到整数文字,以确保足够大的范围,同时仍然显式地键入变量。

票数 15
EN

Stack Overflow用户

发布于 2019-01-11 07:32:30

您可以随时定义自己的后缀

代码语言:javascript
复制
#include <cstdint>
#include <type_traits>

uint32_t operator ""_u32 (unsigned long long v) { return uint32_t (v); } 

int main ()
{
    auto v = 10_u32;

    static_assert (std::is_same <decltype (v), uint32_t>::value);
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54096097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档