std::has_virtual_destructor
Материал из cppreference.com
|
|
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
| Заголовочный файл <type_traits>
|
||
| template< class T > struct has_virtual_destructor; |
(начиная с C++11) | |
Если
T это тип с виртуального деструктора, обеспечивает постоянный член value равных true. Для любого другого типа, value является false.Original:
If
T is a type with a virtual destructor, provides the member constant value equal true. For any other type, value is false.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Содержание |
Унаследован от std::integral_constant
Member constants
| value [static] |
true если T has a virtual destructor , false иначе Original: true if T has a virtual destructor , false otherwise The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (public static константа-член) |
Member functions
| operator bool |
преобразует объект в bool, возвращает value Original: converts the object to bool, returns value The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (public функция-член) |
Member types
| Type
Original: Type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
Definition |
value_type
|
bool
|
type
|
std::integral_constant<bool, value> |
[править] Notes
Если класс имеет открытый виртуальный деструктор, она может быть получена из, а производный объект может быть безопасно удален через указатель на базовый объект (C++FAQ Lite 20.7)
Original:
If a class has a public virtual destructor, it can be derived from, and the derived object can be safely deleted through a pointer to the base object (C++FAQ Lite 20.7)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[править] Пример
#include <iostream> #include <type_traits> #include <string> #include <stdexcept> int main() { std::cout << std::boolalpha << "std::string has a virtual destructor? " << std::has_virtual_destructor<std::string>::value << '\n' << "std::runtime_error has a virtual destructor? " << std::has_virtual_destructor<std::runtime_error>::value << '\n'; }
Вывод:
std::string has a virtual destructor? false std::runtime_error has a virtual destructor? true
[править] См. также
| (C++11) (C++11) (C++11) |
проверяет, является ли тип имеет не удалил деструктор Original: checks if a type has a non-deleted destructor The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (шаблон класса) |