framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
type_string.hpp
Go to the documentation of this file.
1 // Copyright (C) 2012 iwg molw5
2 // For conditions of distribution and use, see copyright notice in COPYING
3 
13 #pragma once
14 
15 namespace framework
16 {
17  namespace detail
18  {
19  template <typename T>
20  struct is_type_string_impl;
21 
22  template <char... Array>
23  struct make_type_string_impl;
24 
25  template <typename... Strings>
26  struct merge_strings_impl;
27  }
28 
35  template <char... Array>
36  struct type_string
37  {
41  enum { size = sizeof... (Array) };
42  };
43 
49  template <typename T>
50  using is_type_string = typename detail::is_type_string_impl <T>::type;
51 
64  template <char... Array>
65  using make_type_string = typename detail::make_type_string_impl <Array...>::type;
66 
71  template <typename... Strings>
72  using merge_strings = typename detail::merge_strings_impl <Strings...>::type;
73 }
74 
75 #include <framework/common/type_string.inl>