std:: holds_alternative
From cppreference.net
C++
Utilities library
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
std::variant
| Member functions | ||||
| Observers | ||||
| Modifiers | ||||
| Visitation | ||||
|
(C++26)
|
||||
| Non-member functions | ||||
|
holds_alternative
|
||||
| Helper classes | ||||
| Helper objects | ||||
|
定义于头文件
<variant>
|
||
|
template
<
class
T,
class
...
Types
>
constexpr bool holds_alternative ( const std:: variant < Types... > & v ) noexcept ; |
(C++17 起) | |
检查变体
v
是否持有可选项
T
。若
T
未在
Types...
中恰好出现一次,则该调用属于非法格式。
目录 |
参数
| v | - | 待检查的 variant 对象 |
返回值
若当前变体持有类型
T
则为
true
,否则为
false
。
示例
运行此代码
#include <cassert> #include <string> #include <variant> int main() { std::variant<int, std::string> v = "abc"; assert(not std::holds_alternative<int>(v)); assert(std::holds_alternative<std::string>(v)); }
参见
返回
variant
所持有可选项的基于零的索引
(公开成员函数) |
|
|
(C++17)
|
根据索引或类型(若类型唯一)读取 variant 的值,错误时抛出异常
(函数模板) |