Files
poly_collection/include/boost/poly_collection/detail/is_moveable.hpp
T
joaquintides fcd9cebc92 Feature/variant_collection (#26)
* added variant_collection

* added variant_collection

* avoided &* on null pointers

* made (non-public) fixed_variant ctor explicit

* tested higher-arity visit

* implemented visit<void>

* fixed {boost::variant2|std}::variant insertion

* fixed lookup issues with invoke_visit

* removed unneeded constexpr qualifiers

* s/typeid_/index

* reverted c6bc62f6d2 as Clang 5.0 didnt seem to like it

* reinstated c6bc62f6d2

* dropped -std=c++1z for Clang 5.0

* updated docs and examples

* added boost::poly_collection::visit_by_index

* typo

* explicit cted tuple in make_iota_tuple

* changed function name to see if it helps with mangling-related Clang 3.8 ICE

* rewritten make_iota_tuple to try to make Clang 3.8 happier

* added boost::variant_collection_of
2024-12-28 10:56:06 +01:00

38 lines
914 B
C++

/* Copyright 2024 Joaquin M Lopez Munoz.
* Distributed under the Boost Software License, Version 1.0.
* (See accompanying file LICENSE_1_0.txt or copy at
* http://www.boost.org/LICENSE_1_0.txt)
*
* See http://www.boost.org/libs/poly_collection for library home page.
*/
#ifndef BOOST_POLY_COLLECTION_DETAIL_IS_MOVEABLE_HPP
#define BOOST_POLY_COLLECTION_DETAIL_IS_MOVEABLE_HPP
#if defined(_MSC_VER)
#pragma once
#endif
#include <type_traits>
namespace boost{
namespace poly_collection{
namespace detail{
template<typename T> struct is_moveable:std::integral_constant<
bool,
std::is_move_constructible<typename std::decay<T>::type>::value&&
(std::is_move_assignable<typename std::decay<T>::type>::value||
std::is_nothrow_move_constructible<typename std::decay<T>::type>::value)
>{};
} /* namespace poly_collection::detail */
} /* namespace poly_collection */
} /* namespace boost */
#endif