This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 115e. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.
2024-11-11
The Standard should make clear that a constexpr member function cannot be used in a constant expression until its class is complete. For example:
template<typename T> struct C { template<typename T2> static constexpr bool _S_chk() { return false; } static const bool __value = _S_chk<int>(); }; C<double> c;
Current implementations accept this, although they reject the corresponding non-template case:
struct C { static constexpr bool _S_chk() { return false; } static const bool __value = _S_chk(); }; C c;
Presumably the template case should be handled consistently with the non-template case.
CWG 2024-06-28
CWG opined that, contrary to the assertion in the issue, the treatment of non-templated class definitions should be changed to more closely resemble templated ones. This direction is covered by issue 2335.