Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-09-17 08:45:59

0001 /* Copyright 2024 Joaquin M Lopez Munoz.
0002  * Distributed under the Boost Software License, Version 1.0.
0003  * (See accompanying file LICENSE_1_0.txt or copy at
0004  * http://www.boost.org/LICENSE_1_0.txt)
0005  *
0006  * See http://www.boost.org/libs/poly_collection for library home page.
0007  */
0008 
0009 #ifndef BOOST_POLY_COLLECTION_VARIANT_COLLECTION_FWD_HPP
0010 #define BOOST_POLY_COLLECTION_VARIANT_COLLECTION_FWD_HPP
0011 
0012 #if defined(_MSC_VER)
0013 #pragma once
0014 #endif
0015 
0016 #include <boost/mp11/list.hpp>
0017 #include <memory>
0018 
0019 namespace boost{
0020 
0021 namespace poly_collection{
0022 
0023 namespace detail{
0024 template<typename... Ts> struct variant_model;
0025 }
0026 
0027 template<typename TypeList>
0028 using variant_collection_value_type=
0029   typename mp11::mp_rename<TypeList,detail::variant_model>::value_type;
0030 
0031 template<
0032   typename TypeList,
0033   typename Allocator=std::allocator<variant_collection_value_type<TypeList>>
0034 >
0035 class variant_collection;
0036 
0037 template<typename... Ts>
0038 using variant_collection_of=variant_collection<mp11::mp_list<Ts...>>;
0039 
0040 template<typename TypeList,typename Allocator>
0041 bool operator==(
0042   const variant_collection<TypeList,Allocator>& x,
0043   const variant_collection<TypeList,Allocator>& y);
0044 
0045 template<typename TypeList,typename Allocator>
0046 bool operator!=(
0047   const variant_collection<TypeList,Allocator>& x,
0048   const variant_collection<TypeList,Allocator>& y);
0049 
0050 template<typename TypeList,typename Allocator>
0051 void swap(
0052   variant_collection<TypeList,Allocator>& x,
0053   variant_collection<TypeList,Allocator>& y);
0054 
0055 } /* namespace poly_collection */
0056 
0057 using poly_collection::variant_collection;
0058 using poly_collection::variant_collection_of;
0059 
0060 } /* namespace boost */
0061 
0062 #endif