C++17新特性与GSL库的实用指南
1. C++17新特性
C++17引入了几个受欢迎的新类: std::any 、 std::variant 和 std::optional 。
1.1 std::any
std::any 能够在任何时候存储任何值。不过,需要特殊的访问器来检索 std::any 中的数据,但它能以类型安全的方式保存任何值。 std::any 利用内部指针实现,每次更改类型时都必须分配内存。示例代码如下:
#include <iostream>
#include <any>
struct mystruct {
int data;
};
int main(void)
{
auto myany = std::make_any<int>(42);
std::cout << std::any_cast<int>(myany) << '\n';
myany = 4.2;
std::cout << std::any_cast<double>(myany) << '\n';
myany = mystruct{42};
std::cout << std::any_cast<mystruct>(myany).data << '\
超级会员免费看
订阅专栏 解锁全文
1564

被折叠的 条评论
为什么被折叠?



