Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/cpp0x/constexpr-array17.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
// PR c++/71092 // { dg-do compile { target c++11 } } template <typename _Default> struct A { using type = _Default; }; template <typename _Default, template <typename> class> using __detected_or = A<_Default>; template <typename _Default, template <typename> class _Op> using __detected_or_t = typename __detected_or<_Default, _Op>::type; template <typename _Tp> struct B { typedef _Tp value_type; }; struct C { template <typename _Tp> using __pointer = typename _Tp::pointer; }; template <typename _Alloc> struct J : C { using pointer = __detected_or_t<typename _Alloc::value_type *, __pointer>; }; template <typename _T1> void _Construct(_T1 *) { new _T1; } struct D { template <typename _ForwardIterator, typename _Size> static _ForwardIterator __uninit_default_n(_ForwardIterator p1, _Size) { _Construct(p1); return _ForwardIterator(); } }; template <typename _ForwardIterator, typename _Size> void __uninitialized_default_n(_ForwardIterator p1, _Size) { D::__uninit_default_n(p1, 0); } template <typename _ForwardIterator, typename _Size, typename _Tp> void __uninitialized_default_n_a(_ForwardIterator p1, _Size, _Tp) { __uninitialized_default_n(p1, 0); } template <typename> struct __shared_ptr { constexpr __shared_ptr() : _M_ptr(), _M_refcount() {} int _M_ptr; int _M_refcount; }; template <typename _Alloc> struct F { typedef _Alloc _Tp_alloc_type; struct G { typename J<_Tp_alloc_type>::pointer _M_start; G(_Tp_alloc_type); }; F(int, _Alloc p2) : _M_impl(p2) {} G _M_impl; }; template <typename _Tp, typename _Alloc = B<_Tp>> struct K : F<_Alloc> { typedef _Alloc allocator_type; K(int, allocator_type p2 = allocator_type()) : F<_Alloc>(0, p2) { __uninitialized_default_n_a(this->_M_impl._M_start, 0, 0); } }; struct H { H(); struct I { __shared_ptr<int> trigger[1]; }; __shared_ptr<int> resetTrigger_; K<I> states_; __shared_ptr<int> triggerManager_; }; __shared_ptr<int> a; H::H() : states_(0), triggerManager_(a) {}