【C++】可以任意拓展的仿结构体

哈哈哈,这个std::any真不错

#include <iostream>
#include <map>
#include <any>
#include <vector>
using namespace std;

int main() {

	map<string, std::any> attrs;

	attrs["Num"] = std::make_any<uint64_t>(1);
	attrs["Str"] = std::make_any<string>("LingMo");
	attrs["Vec"] = std::make_any<std::vector<int>>({ 1, 2, 4 ,5, 6, 7, 8 ,9 });
	string a1 = "Hello";
	string a2 = "World";
	attrs["Vec2"] = std::make_any<std::vector<string>>({ a1, a2, string("Why") });

	uint64_t num = std::any_cast<uint64_t>(attrs["Num"]);
	string str = std::any_cast<string>(attrs["Str"]);
	std::vector<int> vec = std::any_cast<std::vector<int>>(attrs["Vec"]);
	std::vector<string> vec2 = std::any_cast<std::vector<string>>(attrs["Vec2"]);

	return 0;
}

在这里插入图片描述

constexpr size_t operator ""_KB(unsigned long long kbs)
{
    return 1024LLU * kbs;
}

constexpr size_t operator ""_MB(unsigned long long mbs)
{
    return 1024LLU * 1024LLU * mbs;
}

constexpr size_t operator ""_GB(unsigned long long gbs)
{
    return 1024LLU * 1024LLU * 1024LLU * gbs;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值