相关疑难解决方法(0)

C++中的" - >"运算符是什么?

看完后隐藏功能和C++/STL的暗角comp.lang.c++.moderated,我完全惊讶的是,下面的代码片断编译并在两个Visual Studio 2008和G ++ 4.4的工作.

这是代码:

#include <stdio.h>
int main()
{
    int x = 10;
    while (x --> 0) // x goes to 0
    {
        printf("%d ", x);
    }
}
Run Code Online (Sandbox Code Playgroud)

我假设这是C,因为它也适用于GCC.标准中定义了哪里,它来自何处?

c++ code-formatting standards-compliance operators

8590
推荐指数
27
解决办法
75万
查看次数

198
推荐指数
6
解决办法
2万
查看次数

为什么C ++ 20中引入了std :: ssize()?

C ++ 20引入了std::ssize()free函数,如下所示:

template <class C>
    constexpr auto ssize(const C& c)
        -> std::common_type_t<std::ptrdiff_t,
                              std::make_signed_t<decltype(c.size())>>;
Run Code Online (Sandbox Code Playgroud)

似乎可以使用实现static_cast,将size()cl ass C的成员函数的返回值转换为其已签名的对应函数。

由于size()C 的成员函数始终返回非负值,为什么有人会将它们存储在带符号的变量中?万一真的要,那很简单static_cast

为什么std::ssize()在C ++ 20中引入?

c++ c++20

92
推荐指数
2
解决办法
6823
查看次数