1 // PR c++/89381 2 // { dg-do compile { target c++11 } } 3 4 template<typename T> 5 struct base 6 { basebase7 base() { } basebase8 base(const base&) { } basebase9 base(base&&) { } 10 base& operator=(const base&) { return *this; } 11 base& operator=(base&&) { return *this; } 12 }; 13 14 struct foo : base<int> 15 { 16 using base<int>::base; 17 using base<int>::operator=; 18 }; 19 20 //using workaround = decltype(foo{*static_cast<foo const*>(0)}); 21 22 struct bar 23 { 24 bar& operator=(foo ve) 25 { 26 value = ve; 27 return *this; 28 } 29 30 foo value; 31 }; 32 main()33int main() 34 { 35 foo a; 36 foo b{a}; 37 } 38