A. Jiang

Results 240 comments of A. Jiang

> 我似乎明白你的意思了。你是说 constexpr 求值里应当没有任何未定义行为这个问题吧?…… 是的,就是 [[expr.const]/5.8](https://eel.is/c++draft/expr.const#5.8) 这里。 为达成这条要求,常量求值器在此需要确实地检查指针可解引用(对于 `p->baz()` 这种情况目前都是没有进行检查)。而如果取消掉 `->` 访问静态成员时的指针解引用的话就不应有这种检查了。 对于调用非静态成员函数的例子,即使里面没有进行访问…… ```C++ struct S { constexpr int get() const { return 42; } }; static_assert([]{ return static_cast(nullptr)->get(); }()...

> 还是我前面说的,需要有人觉得写 `p->baz()` 应该在 `p` 为空时合法,认定这很重要,一定要保证它有定义行为。你也没这么认为吧。 我倒是不这么认为。但是…… 1. 无论如何设计,常量求值中都会有一种受保证的结果。我想可能可以争议一下“进行较少步骤是更容易正确实现的”,而且似乎理解语义也方便一点。 2. 大概 6 年前我在 Qt 中见过这种写法,可能已经改掉了,但我现在不确定。 > 让编译器对其报错,对编译器厂商可能是个小小的负担,但看 GCC 从 13 到 14 变化,应该也不算太麻烦。 "择日不如撞日“,我给 GCC 提了 [issue](https://gcc.gnu.org/PR115592),目前我的想法是先看下实现者怎么想。

Note that the macro `errno` is not made freestanding, and `` (including the freestanding-deleted portion) doesn't need to rely on it.

@ben-craig The title claimed that `errno.h` is made freestanding, but it seem that the current wording doesn't specify any _meow_.h header to be freestanding in C++ even if _meow_.h is...

> 0L、'\0' 甚至 false、1 - 1,以及 C 语言的 (void*)0 ,也包括 C++ 的 nullptr_t{},都可以作为空指针常量,只是不建议这么用,所以文中用“等常量”来概括了。 > > 当然,“空指针常量” 这个概念是值得进一步强调的,我们后续会进行更严谨的阐述。 注意 C++11/[CWG903](https://cplusplus.github.io/CWG/issues/903.html) 起 `'\0'`、 `false` 及 `1 - 1` 不再被允许为空指针常量了;C 中仍然允许这些表达式作为空指针常量。

Will it be sufficient to just replace the `math` part? ---- I'm trying to resolve this in Boost.Math by adding the `BOOST_MATH_NAMESPACE` macro ```C++ #ifndef BOOST_MATH_NAMESPACE #define BOOST_MATH_NAMESPACE math #endif...

考虑下实现浮点数(对象表示)的[全序函数](https://zh.cppreference.com/w/cpp/utility/compare/strong_order#IEEE_.E6.B5.AE.E7.82.B9.E7.B1.BB.E5.9E.8B.E7.9A.84.E4.B8.A5.E6.A0.BC.E5.85.A8.E5.BA.8F)。并把它推广到非 IEEE-754 格式的 `long double` 实现,例如 Intel 80-bit 格式及 double-double。

脱附的线程可能还能会持有直接从操作系统获得的资源;此时合法性取决于 OS 的设计。 另外我工作中参与的项目经常有“线程已经 `detach`,但其最后的读写与主线程同步,从而之后线程晚点结束也无所谓”的情况。

> > 脱附的线程可能还能会持有直接从操作系统获得的资源;此时合法性取决于 OS 的设计。 > > 那么问题来了,能否找到一个平台,能让已经被 detach 的线程,且主线程和进程结束,这个线程依然能成功执行一些任务? 你看下哪个平台不行,注意不要依赖标准库的对象,后续读写都依赖 OS API。

> > **在能改正的地方改正,在能讨论的地方讨论,在能教导的地方教导。** > > 我也没说不改正啊,看看我之前说的我自己也都更倾向于“栈”一个字,避免混淆。。。 不真知道你在对我喷什么。 其实意思很简单:不希望见到任何人为一种容易造成混淆的说法背书。