107b9cd36SEric Fiselier //===----------------------------------------------------------------------===// 207b9cd36SEric Fiselier // 357b08b09SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 457b08b09SChandler Carruth // See https://llvm.org/LICENSE.txt for license information. 557b08b09SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 607b9cd36SEric Fiselier // 707b9cd36SEric Fiselier //===----------------------------------------------------------------------===// 807b9cd36SEric Fiselier 907b9cd36SEric Fiselier // <forward_list> 1007b9cd36SEric Fiselier 1107b9cd36SEric Fiselier // forward_list() 1207b9cd36SEric Fiselier // forward_list::iterator() 1307b9cd36SEric Fiselier // forward_list::const_iterator() 1407b9cd36SEric Fiselier 1507b9cd36SEric Fiselier #include <forward_list> 1607b9cd36SEric Fiselier #include <cassert> 1707b9cd36SEric Fiselier 1807b9cd36SEric Fiselier #include "test_macros.h" 1907b9cd36SEric Fiselier #include "min_allocator.h" 2007b9cd36SEric Fiselier 2107b9cd36SEric Fiselier struct A { 2207b9cd36SEric Fiselier std::forward_list<A> d; 2307b9cd36SEric Fiselier std::forward_list<A>::iterator it; 2407b9cd36SEric Fiselier std::forward_list<A>::const_iterator it2; 2507b9cd36SEric Fiselier }; 2607b9cd36SEric Fiselier 2707b9cd36SEric Fiselier #if TEST_STD_VER >= 11 2807b9cd36SEric Fiselier struct B { 2907b9cd36SEric Fiselier typedef std::forward_list<B, min_allocator<B>> FList; 3007b9cd36SEric Fiselier FList d; 3107b9cd36SEric Fiselier FList::iterator it; 3207b9cd36SEric Fiselier FList::const_iterator it2; 3307b9cd36SEric Fiselier }; 3407b9cd36SEric Fiselier #endif 3507b9cd36SEric Fiselier main(int,char **)36*2df59c50SJF Bastienint main(int, char**) 3707b9cd36SEric Fiselier { 3807b9cd36SEric Fiselier { 3907b9cd36SEric Fiselier A a; 4007b9cd36SEric Fiselier assert(a.d.empty()); 4107b9cd36SEric Fiselier a.it = a.d.begin(); 4207b9cd36SEric Fiselier a.it2 = a.d.cbefore_begin(); 4307b9cd36SEric Fiselier } 4407b9cd36SEric Fiselier #if TEST_STD_VER >= 11 4507b9cd36SEric Fiselier { 4607b9cd36SEric Fiselier B b; 4707b9cd36SEric Fiselier assert(b.d.empty()); 4807b9cd36SEric Fiselier b.it = b.d.begin(); 4907b9cd36SEric Fiselier b.it2 = b.d.cbefore_begin(); 5007b9cd36SEric Fiselier } 5107b9cd36SEric Fiselier #endif 52*2df59c50SJF Bastien 53*2df59c50SJF Bastien return 0; 5407b9cd36SEric Fiselier } 55