【发布时间】:2018-10-10 21:24:25
【问题描述】:
假设在下面的代码中,意图是允许Bar<T> 中的T 成为任何U 的Foo<U>。
template<typename U>
class Foo { };
template<typename T, typename = std::enable_if_t< /*T is Foo<U> for any U*/>>
class Bar {
// ...
};
我用什么替换 /*T is Foo<U> for any U*/ 吗?
【问题讨论】:
-
@Barry 我看到了您的编辑,但额外的条件是为了避免不回答的建议,例如
template<typename U>class Bar{ using T=Foo<U>; } -
为什么会有人这么建议?这似乎对这个问题没有帮助。
-
@Barry 有了你的代表,人们不会再猜测你真正想问的问题,但我已经学会在我的问题中构建抗失真机制。
-
如果您认为编辑违背了问题的意图,我们非常欢迎您回滚编辑 - 但我想了解您正在尝试哪种“不回答建议”避免得到。
-
@Barry 这并没有违背问题的意图——事实上这正是问题最初的起草方式。
标签: c++ c++14 sfinae typetraits enable-if