3#ifndef TETL_TYPE_TRAITS_IS_DESTRUCTIBLE_HPP
4#define TETL_TYPE_TRAITS_IS_DESTRUCTIBLE_HPP
22struct try_is_destructible_impl {
23 template <typename T, typename = decltype(etl::declval<T&>().~T())>
31struct is_destructible_impl : try_is_destructible_impl {
32 using type =
decltype(test<T>(0));
37 bool = etl::disjunction<etl::is_void<T>, etl::is_function<T>, etl::is_unbounded_array<T>>::value,
38 bool = etl::disjunction<etl::is_reference<T>, etl::is_scalar<T>>::value>
39struct is_destructible_safe;
42struct is_destructible_safe<T, false, false> : is_destructible_impl<typename etl::remove_all_extents_t<T>>::type { };
62template <
typename Type>
Definition adjacent_find.hpp:8
bool_constant< true > true_type
Definition bool_constant.hpp:13
bool_constant< false > false_type
Definition bool_constant.hpp:14
constexpr auto is_destructible_v
Definition is_destructible.hpp:69
Because the C++ program terminates if a destructor throws an exception during stack unwinding (which ...
Definition is_destructible.hpp:60