std::is_abstract
cppreference.com
<tbody>
</tbody>
template< class T > struct is_abstract; |
( C++11) | |
std::is_abstract UnaryTypeTrait.
T ( , ), - value, true. value false.
T , .
, std::is_abstract std::is_abstract_v ( C++17) .
| T |
<tbody> </tbody>
template< class T > inline constexpr bool is_abstract_v = is_abstract<T>::value; |
( C++17) | |
std::integral_constant
value [static] |
true, T , false (public static -) |
-
operator bool |
bool, value (public -) |
operator() (C++14) |
value (public -) |
value_type
|
bool
|
type
|
std::integral_constant<bool, value>
|
#include <iostream>
#include <type_traits>
struct A { int m; };
static_assert(std::is_abstract_v<A> == false);
struct B { virtual void foo(); };
static_assert(std::is_abstract_v<B> == false);
struct C { virtual void foo() = 0; };
static_assert(std::is_abstract_v<C> == true);
struct D : C {};
static_assert(std::is_abstract_v<D> == true);
int main() {}
C++:
| LWG 2015 | C++11 | , T |
std::false_type |
(C++11) |
, ( ) |
(C++11) |
, ( ) |