#include <iostream>
#include <string>
#include <tuple>
using namespace std;
enum class color;
class acc
{
public:
color c;
};
enum class color
{
a,
b,
c
};
enum
{
name,
phone,
age
};
enum class mmm
{
a = 9,
};
// c++11
template <typename T>
constexpr typename underlying_type<T>::type totuple(T enum1) noexcept
{
return static_cast<typename underlying_type<T>::type>(enum1);
}
// c++ 14
template <typename T>
constexpr underlying_type_t<T> totypele_(T enum1) noexcept
{
return static_cast<underlying_type_t<T>>(enum1);
}
// c++ 14
template <class T>
constexpr auto totuple__(T enum1) noexcept
{
return static_cast<underlying_type_t<T>>(enum1)
}
using Student = tuple<string, string, int>;
int main()
{
Student t("xuxu", "1001", 60.0);
auto val = get<name>(t);
auto pho = get<phone>(t);
auto ag = get<age>(t);
auto mm = get<static_cast<int>(color::a)>(t);
cout << val << " " << pho << " " << ag << endl;
// 模板函数
auto ppp = get<totuple(color::a)>(t);
// std::get<1> t;
// auto ex = color::a;
// int x = static_cast<int>(ex);
// color m = static_cast<color>(5);
// cout << x << endl;
}
条款十大概
最新推荐文章于 2024-09-10 08:28:20 发布
本文介绍了C++中如何使用枚举、模板和tuple来处理类型转换和访问类Student的数据成员,展示了get<>函数以及类型转换的相关用法。
摘要由CSDN通过智能技术生成