VCCC  2024.05
VisualCamp Common C++ library
indirectly_copyable.hpp
Go to the documentation of this file.
1 //
2 // Created by yonggyulee on 2024/01/08.
3 //
4 
5 #ifndef VCCC_ITERATOR_INDIRECTLY_COPYABLE_HPP
6 #define VCCC_ITERATOR_INDIRECTLY_COPYABLE_HPP
7 
8 #include <type_traits>
9 
13 
14 namespace vccc {
15 namespace detail {
16 
18 struct indirectly_copyable_impl
19  : indirectly_writable<Out, iter_reference_t<In>> {};
20 
21 template<typename In, typename Out>
22 struct indirectly_copyable_impl<In, Out, false> : std::false_type {};
23 
24 } // namespace detail
25 
28 
38 template<typename In, typename Out>
39 struct indirectly_copyable : detail::indirectly_copyable_impl<In, Out> {};
40 
42 
43 } // namespace vccc
44 
45 #endif // VCCC_ITERATOR_INDIRECTLY_COPYABLE_HPP
Definition: directory.h:12
constexpr VCCC_INLINE_OR_STATIC detail::element_niebloid< 1 > value
Definition: key_value.hpp:35
specifies that values may be copied from an indirectly_readable type to an indirectly_writable type
Definition: indirectly_copyable.hpp:39