如何声明某个结构的成员变量类型的变量?

问题描述 投票:2回答:1

我想获得这样的代码:

struct Order_t {
   time_point<system_clock, microseconds>  order_time;
   // some other fileds
};

template<typename Dura>
void onTimer( time_point<system_clock, Dura> tp_now ) {
    auto tp0 =  time_point_cast<Order_t::order_time::duration>( tp_now );

    // some other codes...
};

但是这些无法编译。实际上,我需要声明一个与Order_t::order_time具有相同类型的变量,但此处没有该类型的var。

c++ auto decltype non-static member-variables
1个回答
1
投票

要获取嵌套类型(::duration),您需要类型,而不是变量。因此,应该是

auto tp0 = time_point_cast<decltype(Order_t::order_time)::duration>(tp_now);
© www.soinside.com 2019 - 2024. All rights reserved.