xref: /llvm-project/libcxx/test/std/containers/sequences/forwardlist/incomplete.pass.cpp (revision 2df59c50688c122bbcae7467d3eaf862c3ea3088)
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 Bastien int 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