GDB (xrefs)
unittests
optional
in_place.cc
Go to the documentation of this file.
1
// Copyright (C) 2013-2018 Free Software Foundation, Inc.
2
//
3
// This file is part of the GNU ISO C++ Library. This library is free
4
// software; you can redistribute it and/or modify it under the
5
// terms of the GNU General Public License as published by the
6
// Free Software Foundation; either version 3, or (at your option)
7
// any later version.
8
9
// This library is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
// GNU General Public License for more details.
13
14
// You should have received a copy of the GNU General Public License along
15
// with this library; see the file COPYING3. If not see
16
// <http://www.gnu.org/licenses/>.
17
18
namespace
in_place
{
19
20
void
test
()
21
{
22
// [20.5.5] In-place construction
23
{
24
gdb::optional<int>
o {
gdb::in_place
};
25
VERIFY
( o );
26
VERIFY
( *o ==
int
() );
27
28
#ifndef GDB_OPTIONAL
29
static_assert( !
std::is_convertible
<
gdb::in_place_t
,
gdb::optional<int>
>(),
""
);
30
#endif
31
}
32
33
{
34
gdb::optional<int>
o {
gdb::in_place
, 42 };
35
VERIFY
( o );
36
VERIFY
( *o == 42 );
37
}
38
39
{
40
gdb::optional<std::vector<int>
> o {
gdb::in_place
, 18, 4 };
41
VERIFY
( o );
42
VERIFY
( o->size() == 18 );
43
VERIFY
( (*o)[17] == 4 );
44
}
45
46
#ifndef GDB_OPTIONAL
47
{
48
gdb::optional<std::vector<int>
> o {
gdb::in_place
, { 18, 4 } };
49
VERIFY
( o );
50
VERIFY
( o->size() == 2 );
51
VERIFY
( (*o)[0] == 18 );
52
}
53
#endif
54
55
#ifndef GDB_OPTIONAL
56
{
57
gdb::optional<std::vector<int>
> o {
gdb::in_place
, { 18, 4 }, std::allocator<int> {} };
58
VERIFY
( o );
59
VERIFY
( o->size() == 2 );
60
VERIFY
( (*o)[0] == 18 );
61
}
62
#endif
63
}
64
65
}
// namespace in_place
gdb::in_place
constexpr gdb::in_place_t in_place
Definition:
gdb_optional.h:33
VERIFY
#define VERIFY
Definition:
optional-selftests.c:31
in_place::test
void test()
Definition:
in_place.cc:20
gdb::optional
Definition:
gdb_optional.h:51
in_place
Definition:
in_place.cc:18
selftests::array_view_tests::is_convertible
static constexpr bool is_convertible()
Definition:
array-view-selftests.c:48
gdb::in_place_t
Definition:
gdb_optional.h:28
Generated by
1.8.14