3 // Copyright Michael Park, 2015-2017
5 // Distributed under the Boost Software License, Version 1.0.
6 // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
8 #ifndef MPARK_IN_PLACE_HPP
9 #define MPARK_IN_PLACE_HPP
17 struct in_place_t
{ explicit in_place_t() = default; };
19 template <std::size_t I
>
20 struct in_place_index_t
{ explicit in_place_index_t() = default; };
23 struct in_place_type_t
{ explicit in_place_type_t() = default; };
25 #ifdef MPARK_VARIABLE_TEMPLATES
26 constexpr in_place_t in_place
{};
28 template <std::size_t I
> constexpr in_place_index_t
<I
> in_place_index
{};
30 template <typename T
> constexpr in_place_type_t
<T
> in_place_type
{};
35 #endif // MPARK_IN_PLACE_HPP