PR c++/65051
[official-gcc.git] / gcc / testsuite / g++.dg / template / overload14.C
blobec2c38151003ed3ca176a4ff92662677e7087114
1 // PR c++/65051
3 template<typename T> struct wrap { typedef T type; };
4 template <class T> class rv: public wrap <T>::type {};
6 template <class value_type>
7 struct circular_buffer
9     typedef const value_type& param_value_type;
10     typedef rv< value_type >& rvalue_type;
12     void push_back(param_value_type item) {}
13     void push_back(rvalue_type item) {}
16 union U { int i; char c; };
18 void f(circular_buffer<U> b, const U& u) { b.push_back(u); }