template< class T >
struct is_final;
std::is_final
is a UnaryTypeTrait.
If T
is a final class, provides the member constant value
equal true. For any other type, value
is false.
If T
is an incomplete class type, the behavior is undefined.
If the program adds specializations for std::is_final
or std::is_final_v
(since C++17), the behavior is undefined.
template< class T >
constexpr bool is_final_v = is_final<T>::value;
T
is a final class type, false otherwise
std::is_final
is introduced by the resolution of LWG issue 2112.
A union can be declared final
(and std::is_final
will detect that), even though unions cannot be used as bases in any case.
#include <type_traits> class A {}; static_assert(std::is_final_v<A> == false); class B final {}; static_assert(std::is_final_v<B> == true); union U final { int x; double d; }; static_assert(std::is_final_v<U> == true); int main() { }[edit] See also checks if a type is a non-union class type
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4