Merge pull request #40 from McSinyx/travis
[alure.git] / include / mpark / in_place.hpp
blob56cae131131f4e38f175e7fe197fccc3037ae474
1 // MPark.Variant
2 //
3 // Copyright Michael Park, 2015-2017
4 //
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
11 #include <cstddef>
13 #include "config.hpp"
15 namespace mpark {
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; };
22 template <typename T>
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{};
31 #endif
33 } // namespace mpark
35 #endif // MPARK_IN_PLACE_HPP