c++ - 如何声明某个结构的成员 var 类型的 var?

标签 c++ auto decltype non-static member-variables

我想要得到这样的代码:

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。

最佳答案

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

auto tp0 = time_point_cast<decltype(Order_t::order_time)::duration>(tp_now);

关于c++ - 如何声明某个结构的成员 var 类型的 var?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59375956/

相关文章:

c++ - 如何让 QT 4.8 应用程序与 Netbeans 7.3 一起运行?

c++ - 常量与可变迭代器 : same algorithm different code

c++ - "auto v = f()"和 "auto&& v = f()"有什么区别?

c++ - 为什么 clang++ 不能推断出 lambda 映射的类型?

c++ - 有没有办法在变量中存储类型说明符?

c++ - 断言函数如何在失败时返回文件名和代码行

c++ - 两个非负整数A和B的十进制zip是整数C

c++ - 不同 C++ 编译器之间自动类型推导不匹配

c++ - 关于cppreference.com对decltype解释的2个问题

c++ - 派生类中的 sizeof(*this) 和 decltype(*this)