std::bit_width发现代表整数所需的最小比特x作为1+floor(log(x))
为什么std::bit_width值 0 返回 0?它不应该返回 1,因为表示 0 所需的位数是 1?
另外,我认为1公式中的 是一个偏移量。
每当我打开 Anaconda Prompt 时,我都会将上面的消息打印两次

我该如何解决这个问题?
nullptr_t是 的类型nullptr。当我使用 时nullptr_t,我必须使用头文件,<cstddef>但为什么nullptr单独使用关键字时不需要它?
如何检查字符串是否为 typestd::string或 is of type const char*?
template<typename B>
B check(B b)
{
//
}
Run Code Online (Sandbox Code Playgroud)
check可能用 astd::string或 a调用const char*
我不知道如何推断返回类型。如何确定它应该是std::string还是const char*?
我想安全地将ssize_t变量与int64_t变量进行比较以检查值是否相等。安全我的意思是比较应该适用于ssize_t. 我的第一个猜测是使用 astatic_cast转换为ssize_t,int64_t但我不确定这是否是一种安全的转换方式?
就像是:
ssize_t a = read(...);
int64_t b = getsize(...);
if(static_cast<int64_t>(a) == b){
// ... read succeeded
} else{
// ... partial or read failure
}
Run Code Online (Sandbox Code Playgroud)
更新:在 Ubuntu 上,它们的大小完全相同