gpt4 book ai didi

c++ - C++ 中成员数量可变的模板类

转载 作者:行者123 更新时间:2023-11-30 05:25:11 24 4
gpt4 key购买 nike

这更多的是对 C++ 模板的好奇,而不是有用的东西。它应该是一个成员数量可变的类。是否有可能将其编译为直接成员访问?

// type equality
template <typename X, typename Y> struct Eq { static const bool out = false; };
template <typename X> struct Eq<X, X> { static const bool out = true; };

template <typename First, typename... Rest>
class Table {
First _field;
Table<Rest...> _nextTable;
public:
template <typename T>
T &get() {
if (Eq<First, T>::out)
return (T&)_field;

return (T&)_nextTable.get<T>();
}
};

template<typename First>
class Table<First> {
First _field;
public:
template <typename T>
T &get() {
return _field;
}
};

int main() {
Table<int, double> table;
table.get<double>() = 11.1;
}

最佳答案

return (T&)_nextTable.template get<T>();

http://en.cppreference.com/w/cpp/language/dependent_name

关于c++ - C++ 中成员数量可变的模板类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38411884/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com