Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/wrappers/wrapper-around-type-pack-expansion.C @ 158:494b0b89df80 default tip
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 18:13:55 +0900 |
parents | 84e7813d76e9 |
children |
line wrap: on
line source
// { dg-do compile { target c++11 } } typedef long unsigned int size_t; template<typename _Tp> struct remove_reference {}; template<typename _Tp> constexpr _Tp&& forward(typename remove_reference<_Tp>::type& __t) noexcept { } struct __allocator_traits_base { template<typename _Tp, typename _Up, typename = void> struct __rebind { using type = typename _Tp::template rebind<_Up>::other; }; }; template<typename _Alloc, typename _Up> using __alloc_rebind = typename __allocator_traits_base::template __rebind<_Alloc, _Up>::type; template<typename _Alloc> struct allocator_traits { template<typename _Tp> using rebind_alloc = __alloc_rebind<_Alloc, _Tp>; template<typename _Tp, typename... _Args> static auto construct(_Alloc& __a, _Tp* __p, _Args&&... __args) -> decltype(_S_construct(__a, __p, forward<_Args>(__args)...)) { } }; template<typename _Alloc, typename = typename _Alloc::value_type> struct __alloc_traits : allocator_traits<_Alloc> { typedef allocator_traits<_Alloc> _Base_type; template<typename _Tp> struct rebind { typedef typename _Base_type::template rebind_alloc<_Tp> other; }; }; template<typename _Tp> class allocator { typedef _Tp value_type; template<typename _Tp1> struct rebind { typedef allocator<_Tp1> other; }; }; template<typename _CharT, typename _Alloc> class basic_string { typedef typename __alloc_traits<_Alloc>::template rebind<_CharT>::other _Char_alloc_type; }; template<size_t _Nw> struct _Base_bitset { static void foo (basic_string<char, allocator<char> >) {} };