🌶️std::variant|C++17
#include <stdint.h>
#include <stdio.h>
union
{
struct
{
uint8_t low : 4; // 表示该位域占用4个位,这使得我们能够直接操作和访问字节的高低半部分
uint8_t high : 4;
}nibles;
uint8_t bytes;
}myByte;
int main()
{
myByte.bytes = 0xAB ;
printf("High Nible : 0x%X\n",myByte.nibles.high);
printf("Low Nible : 0x%X\n",myByte.nibles.low);
return 0;
}什么是std::variant
std::variantstd::variant公共成员函数
std::variant公共成员函数默认构造函数:
赋值构造函数
使用 index 方法获取当前持有类型的索引
index 方法获取当前持有类型的索引使用 std::variant_alternative 获取类型
std::variant_alternative 获取类型综合示例
Valueless by Exception
Valueless by ExceptionSwap
Swapempalce()
empalce()visit()
visit()详细示例
std::variant的优势
std::variant的优势总结
reference
Last updated