Console Library 4.7.0
A header-only library that makes C++ simple
Loading...
Searching...
No Matches
类型特征

编译期检测类型特性的模板工具。 More...

Classes

struct  console::is_container< T, class >
 检测类型是否为容器(支持 std::begin 和 std::end)。 More...
struct  console::is_callable< F, class, Args >
 检测类型是否可作为函数对象以给定参数调用(返回 void 或可转换为 void)。 More...
struct  console::is_iterator< T, class >
 检测类型是否为迭代器(具有 iterator_category)。 More...
struct  console::has_subscript< T, Idx, class >
 检测类型是否支持下标操作符(如 T[Idx])。 More...
struct  console::is_string< T, class >
 检测类型是否为字符串类型(char*、std::string、std::string_view 等)。 More...
struct  console::is_printable< T, class >
 检测类型是否支持输出到 std::ostream(即定义了 operator<<)。 More...
struct  console::is_char< T, class >
 检测类型是否为字符类型(char、wchar_t、char16_t、char32_t 等)。 More...
struct  console::uniform_distribution_impl< T, typename >
 取得适配分布的主模板。 More...

Typedefs

template<class T>
using console::enable_if_container
 启用若 T 是容器。
template<class T>
using console::enable_if_not_container
 启用若 T 不是容器。
template<class F, class... Args>
using console::enable_if_callable
 启用若 F 可以 Args... 参数调用。
template<class F, class... Args>
using console::enable_if_not_callable
 启用若 F 不可以 Args... 参数调用。
template<class T>
using console::enable_if_iterator
 启用若 T 是迭代器。
template<class T>
using console::enable_if_not_iterator
 启用若 T 不是迭代器。
template<class T>
using console::enable_if_string
 启用若 T(decay 后)是字符串类型。
template<class T>
using console::enable_if_not_string
 启用若 T(decay 后)不是字符串类型。
template<class T>
using console::enable_if_printable
 启用若 T 可打印。
template<class T>
using console::enable_if_not_printable
 启用若 T 不可打印。
template<class T>
using console::enable_if_char
 启用若 T(decay 后)是字符类型。
template<class T>
using console::enable_if_not_char
 启用若 T(decay 后)不是字符类型。
template<typename T>
using console::uniform_distribution_t = typename uniform_distribution_impl<T>::type
 取得对印类型所对应的均匀分布。

Detailed Description

编译期检测类型特性的模板工具。

Typedef Documentation

◆ enable_if_callable

template<class F, class... Args>
using console::enable_if_callable
Initial value:
typename std::enable_if<is_callable<F, Args...>::value>::type
@ F
Definition kb.h:58
检测类型是否可作为函数对象以给定参数调用(返回 void 或可转换为 void)。
Definition sfinae.h:74

启用若 F 可以 Args... 参数调用。

◆ enable_if_char

template<class T>
using console::enable_if_char
Initial value:
typename std::enable_if<is_char<
typename std::decay<T>::type>::value>::type
检测类型是否为字符类型(char、wchar_t、char16_t、char32_t 等)。
Definition sfinae.h:235

启用若 T(decay 后)是字符类型。

◆ enable_if_container

template<class T>
using console::enable_if_container
Initial value:
typename std::enable_if<is_container<T>::value>::type

启用若 T 是容器。

◆ enable_if_iterator

template<class T>
using console::enable_if_iterator
Initial value:
typename std::enable_if<is_iterator<T>::value>::type

启用若 T 是迭代器。

◆ enable_if_not_callable

template<class F, class... Args>
using console::enable_if_not_callable
Initial value:
typename std::enable_if<!is_callable<F, Args...>::value>::type

启用若 F 不可以 Args... 参数调用。

◆ enable_if_not_char

template<class T>
using console::enable_if_not_char
Initial value:
typename std::enable_if<!is_char<
typename std::decay<T>::type>::value>::type

启用若 T(decay 后)不是字符类型。

◆ enable_if_not_container

template<class T>
using console::enable_if_not_container
Initial value:
typename std::enable_if<!is_container<T>::value>::type

启用若 T 不是容器。

◆ enable_if_not_iterator

template<class T>
using console::enable_if_not_iterator
Initial value:
typename std::enable_if<!is_iterator<T>::value>::type

启用若 T 不是迭代器。

◆ enable_if_not_printable

template<class T>
using console::enable_if_not_printable
Initial value:
typename std::enable_if<!is_printable<T>::value>::type

启用若 T 不可打印。

◆ enable_if_not_string

template<class T>
using console::enable_if_not_string
Initial value:
typename std::enable_if<!is_string<
typename std::decay<T>::type>::value>::type
检测类型是否为字符串类型(char*、stdstring、std::string_view 等)。
Definition sfinae.h:140

启用若 T(decay 后)不是字符串类型。

◆ enable_if_printable

template<class T>
using console::enable_if_printable
Initial value:
typename std::enable_if<is_printable<T>::value>::type

启用若 T 可打印。

◆ enable_if_string

template<class T>
using console::enable_if_string
Initial value:
typename std::enable_if<is_string<
typename std::decay<T>::type>::value>::type

启用若 T(decay 后)是字符串类型。

◆ uniform_distribution_t

template<typename T>
using console::uniform_distribution_t = typename uniform_distribution_impl<T>::type

取得对印类型所对应的均匀分布。