8#ifndef DESIGNLAB_IMPLICIT_METAFUNCTION_FOR_TOML11_H_
9#define DESIGNLAB_IMPLICIT_METAFUNCTION_FOR_TOML11_H_
27template <
typename T,
typename =
void>
40template <
typename T,
typename =
void>
54template<
typename T,
typename U =
void>
62 decltype(
std::declval<std::istream&>() >> std::declval<T&>(),
63 std::declval<void>())> :
64 public std::true_type {};
69template<
typename T,
typename U =
void>
76struct has_output_operator<T, decltype(
std::declval<std::ostream&>() << std::declval<T&>(), std::declval<void>())> :
public std::true_type {};
111 template <typename U, typename = decltype(toml::get<U>(std::declval<toml::value>()))>
112 static std::true_type test(
int);
115 static std::false_type test(...);
148 std::conditional_t<is_vector<T>::value,
149 is_toml11_available_type_vector_type<T>,
150 is_toml11_available_type_not_vector_type<T>> {};
154 "Int is a type that can be used in toml11.");
157 "The type int* is not a usable type in toml11.");
160 "The type std::vector<int> is a type of std::vector and can be used in toml11.");
163 "type std::vector<*int> is a std::vector type, but it is not a usable type.");
明示的に使用することのない関数をまとめた名前空間.
toml::from<T>()が存在するかどうかを判定するメタ関数.
toml::into<T>()が存在するかどうかを判定するメタ関数.
出力ストリームが実装されているか判断するメタ関数.
toml11で使用可能な型かどうかを判定するメタ関数. toml11は vector型にも対応しているが,こちらでは除外する.
static constexpr bool value
toml11 で使用可能な型ならば true. toml11は vector型にも対応しているが,こちらでは除外する.
toml11で使用可能な型かどうかを判定するメタ関数. vector型の場合はこちらを使用して判定する.
toml11で使用可能な型かどうかを判定するメタ関数.
vector<enum> 型かどうかを判定するメタ関数.
出力ストリームが実装されている vector 型かどうかを判定するメタ関数.