CNL  2.0.2 (development)
Compositional Numeric Library
All Classes Namespaces Files Functions Variables Typedefs Macros Pages
is_wrapper.h
1 
2 // Copyright John McFarlane 2019.
3 // Distributed under the Boost Software License, Version 1.0.
4 // (See accompanying file ../LICENSE_1_0.txt or copy at
5 // http://www.boost.org/LICENSE_1_0.txt)
6 
7 #if !defined(CNL_IMPL_WRAPPER_IS_WRAPPER_H)
8 #define CNL_IMPL_WRAPPER_IS_WRAPPER_H
9 
10 #include "../custom_operator/tag.h"
11 #include "declaration.h"
12 
13 #include <type_traits>
14 
16 namespace cnl {
17  namespace _impl {
18  template<typename T>
19  inline constexpr bool is_wrapper = false;
20 
21  template<typename Rep, tag Tag>
22  inline constexpr auto is_wrapper<_impl::wrapper<Rep, Tag>> = true;
23 
24  template<typename T>
25  concept any_wrapper = is_wrapper<T>;
26  }
27 }
28 
29 #endif // CNL_IMPL_WRAPPER_IS_WRAPPER_H
cnl
compositional numeric library
Definition: abort.h:15