https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115557
Bug ID: 115557
Summary: initializing reference property inside template
context - error is not recognized
Product: gcc
Version: 14.1.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: nmmm at nmmm dot nu
Target Milestone: ---
Following code compiles without error or warning.
B::A &a{ 4 }; - this should emit error.
clang catch this and error message is:
non-const lvalue reference to type 'A' cannot bind to an initializer list
temporary
struct A{
A(int){}
};
template<typename T>
struct B{
B(A &a) : a(a){}
A &a{ 4 }; // this is wrong
};
int main(){
A a{ 5 };
B<double> b(a);
}