File indexing completed on 2025-09-17 08:45:59
0001
0002
0003
0004
0005
0006
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 }
0056
0057 using poly_collection::variant_collection;
0058 using poly_collection::variant_collection_of;
0059
0060 }
0061
0062 #endif