【发布时间】:2018-06-06 14:55:55
【问题描述】:
此代码示例可以正常工作,并且完全符合它的预期。
template <typename T>
struct base {
base(T a) {};
};
struct b : public base<int> {
b() : base(3) {};
};
我想利用 C++17 功能和构造函数中的自动推导模板参数,并执行以下操作:
struct b : public base { // note lack of <int>
b() : base(3) {};
};
没有一些丑陋的黑客是可能的吗?
【问题讨论】:
-
你希望
b成为模板吗? -
您可以在 C++17 中编写
struct b : public decltype(base(3)),但不会比struct b : public base<int>短。