|
stlab 2.3.0
Modern, modular C++ algorithms, data structures, and concurrency primitives
|
Type traits and detection helpers used by the concurrency library. More...
#include <stlab/config.hpp>#include <type_traits>Go to the source code of this file.
Classes | |
| struct | stlab::smart_test< test, T > |
| Trait adapter; specialize for types where std::is_copy_constructible is wrong. More... | |
| struct | stlab::voider<... > |
| struct | stlab::nonesuch |
| struct | stlab::detector< Default, class, Op, Args > |
| struct | stlab::detector< Default, void_t< Op< Args... > >, Op, Args... > |
Variables | |
| template<typename T> | |
| constexpr bool | stlab::smart_is_copy_constructible_v |
| template<template< class... > class Op, class... Args> | |
| constexpr bool | stlab::is_detected_v |
Type traits and detection helpers used by the concurrency library.
smart_is_copy_constructible corrects std::is_copy_constructible for types such as std::vector<std::unique_ptr<T>>. Specialize smart_test for other cases (see test/traits_test.cpp). Used by future and channel to pick copyable vs move-only specializations.