#include <iostream>
#include <variant>//c++17
// how to store multiple types of data in a single variable.
// a good example of using variant.
enum class ErrorCode
{
None = 0, NotFound = 1, NoAccess = 2
};
std::variant<std::string, int> ReadFileAsString()
{
return {};
}
int main(void)
{
// variant: requires us to list all of our types.
std::variant<std::string, int> data;
std::cout << sizeof(int) << "\n"; //4
std::cout << sizeof(std::string) << "\n"; //28
std::cout << sizeof(data) << "\n"; //32, technically speaking in this way, union is better.
data = "Groot";
std::cout << std::get<std::string>(data) << "\n";
std::cout << data.index() << "\n"; //0->string
// get_if: check to see if it's the proper type
if (auto value = std::get_if<std::string>(&data))
{
std::string& v = *value;
}
else
{
}
data = 2;
data.index();
std::cout << std::get<int>(data) << "\n";
std::cout << data.index() << "\n"; //1->int
std::cin.get();
}
【Cherno的C++视频】Multiple types of data in a single variable in C++
最新推荐文章于 2024-09-16 17:46:36 发布
本文展示了如何在C++17中利用variant类型来存储字符串和整数等多种类型的数据。通过示例代码,解释了variant的用法,包括get和get_if方法的使用,以及如何检查和访问variant内部存储的值。
摘要由CSDN通过智能技术生成