【发布时间】:2021-07-19 02:29:50
【问题描述】:
我有以下用例,
struct Trans {
double price;
};
struct Quote {
double bid_price_1;
double ask_price_1;
};
template<typename DataT, double DataT::*ptr>
class Return {
public:
void operator()(DataT& data) {
// print out the right field of the right class
//std::cout << &DataT::ptr << std::endl;
}
};
int main() {
Quote quote {1, 2};
Return<Quote, &Quote::bid_price_1> ret;
ret(quote);
}
在Return类的operator中,我希望能够引用正确类的正确成员变量,我看了下面的帖子(Pointer to class member as template parameter),但是好像没有提到如何检索成员变量部分。我想知道检索编译时指定的成员变量的正确语法是什么。
【问题讨论】:
-
您在寻找
(data.*ptr)吗? -
@IgorTandetnik 是的,谢谢。