// { dg-do compile } // { dg-require-effective-target c++11 } inline namespace __cxx11 {} typedef int size_t; class MessageAuthenticationCode; class __uniq_ptr_impl { struct _Ptr { using type = MessageAuthenticationCode *; }; public: using pointer = _Ptr::type; }; class unique_ptr { public: using pointer = __uniq_ptr_impl::pointer; unique_ptr(pointer); }; namespace __cxx11 { class basic_string { public: basic_string(char *); ~basic_string(); }; } // namespace __cxx11 class MessageAuthenticationCode {}; class SCAN_Name { public: SCAN_Name(basic_string); size_t arg_as_integer(); }; class SipHash : public MessageAuthenticationCode { public: SipHash(size_t c, size_t d) : m_C(c), m_D(d) {} size_t m_C, m_D; }; void create(basic_string algo_spec, char *s) { basic_string provider = s; SCAN_Name req(algo_spec); unique_ptr(new SipHash(req.arg_as_integer(), req.arg_as_integer())); }