- meta[meta header]
- std::meta[meta namespace]
- function[meta id-type]
- cpp26[meta cpp]
namespace std::meta {
consteval bool has_virtual_destructor(info r);
}- info[link info.md]
仮想デストラクタを持つ型であるかを判定する。std::has_virtual_destructorに対応する。
rが表す型が仮想デストラクタを持つ場合にtrueを返す。
rが型を表さない場合、std::meta::exception例外を送出する。
#include <meta>
struct Base {
virtual ~Base() = default;
};
struct NonVirtual {
~NonVirtual() = default;
};
int main() {
static_assert(std::meta::has_virtual_destructor(^^Base));
static_assert(!std::meta::has_virtual_destructor(^^NonVirtual));
static_assert(!std::meta::has_virtual_destructor(^^int));
}- std::meta::has_virtual_destructor[color ff0000]
- C++26
- Clang: ??
- GCC: 16 (
-freflectionオプション指定) [mark verified] - Visual C++: ??