This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 116a. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.

2024-12-19


2100. Value-dependent address of static data member of class template

Section: 13.8.3.4  [temp.dep.constexpr]     Status: C++17     Submitter: Richard Smith     Date: 2015-03-16

[Moved to DR at the November, 2016 meeting.]

According to bullet 2.4 of 13.8.3.4 [temp.dep.constexpr], an id-expression is value-dependent if

This implies that the address of an initialized static data member is not value-dependent, which is incorrect.

Proposed resolution (June, 2016):

Change 13.8.3.4 [temp.dep.constexpr] paragraph 5 as follows:

An expression of the form &qualified-id where the qualified-id names a dependent member of the current instantiation is value-dependent. An expression of the form

is also value-dependent if evaluating cast-expression as a core constant expression (7.7 [expr.const]) succeeds and the result of the evaluation refers to a templated entity that is an object with static or thread storage duration or a member function.