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

sur*_*h m 8 c++11

考虑auto var = 5u;.在这里,我使用后缀u,因此var将被推断为unsigned int.有没有办法实现类似的东西uint32_tuint64_t类型?C++ 11或C++ 14中有后缀吗?

JMA*_*MAA 15

我假设你正在使用Herb Sutter建议的AAA风格.

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

auto variable_name = uint64_t{ 5000000000 };
Run Code Online (Sandbox Code Playgroud)

这是清晰,一致和明确的类型,没有必要的讨厌的C预处理器.


编辑:如果您想在使用文字时绝对确定,可以在整数文字中添加适当的后缀,以确保足够大的范围,同时仍然显式键入变量.

  • @MaximEgorushkin文字可以自动转到`long long int`,但`unsigned long long int`确实需要`u`后缀. (2认同)