【C++基础知识——std::get_if 的入参是指针而非引用】
在 C++ 中,std::get_if 的入参是一个指向 std::variant 中可能存储的类型的指针。
- 入参使用指针而非引用
std::get_if 需要传递一个指向 std::variant 的指针,这是因为它返回的结果是一个指向类型 T 的指针:
如果 std::variant 中存储的是类型 T,则返回指向该值的指针。
如果不存储该类型,则返回 nullptr。
2. 示例代码
以下是使用 std::get_if 的示例,展示了如何传递指针:
#include <variant>
#include <iostream>
int main() {
std::variant<int, std::string> var = 42;
// 使用 std::get_if 获取指针
if (auto intPtr = std::get_if<int>(&var)) {
std::cout << "Variant holds an int: " << *intPtr << std::endl;
} else {
std::cout << "Variant does not hold an int." << std::endl;
}
return 0;
}
- 返回值是一个指针,使用之前,一定要判断指针是否为空。
- 总结
std::get_if 的输入参数是一个指向 std::variant 的指针,而不是引用。
这种设计允许 get_if 在不抛出异常的情况下安全地检查并获取 variant 中的值。
返回值是一个指针,使用之前,一定要判断指针是否为空。
原文地址:https://blog.csdn.net/XWWW668899/article/details/142879648
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!