[Bug c++/86049] New: Array bindings are not const when initializer is
blitzrakete at gmail dot com
gcc-bugzilla@gcc.gnu.org
Mon Jun 4 19:56:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86049
Bug ID: 86049
Summary: Array bindings are not const when initializer is
Product: gcc
Version: 8.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: blitzrakete at gmail dot com
Target Milestone: ---
Compiles with clang, doesn't under gcc 8.1.0:
template <typename, typename> struct is_same {
static constexpr bool value = false;
};
template <typename T> struct is_same<T, T> {
static constexpr bool value = true;
};
int main() {
const int Array[] = {1};
auto[One] = Array;
static_assert(is_same<decltype(One), const int>::value); // fail
}
[dcl.struct.bind]p1 is pretty clear here that the type of the underlying
structured binding element is const int[1], and so per [dcl.struct.bind]p2 the
element type is const int and thus so is also One's type.
More information about the Gcc-bugs
mailing list