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()33 int main()
34 {
35     foo a;
36     foo b{a};
37 }
38