C ++概念:我可以定义一个本身就是模板的概念吗?

时间:2016-04-12 18:07:22

标签: c++ generic-programming c++17 c++-concepts

很抱歉,如果问题不是很清楚。我不确定用它来表达它的最佳方式(随意编辑!)。我认为一个例子是最清楚的:

我试图根据Haskell definition定义Monad概念。绑定运算符(>>=)要求Monad类型A可以绑定到一个函数,该函数接受A并返回Monad类型{ {1}}。我可以用B typedef定义A,但如何在我的概念中定义类型value_type

B

在上面的示例中,我将如何替换函数&lt;&gt;中的template <typename M> concept bool Monad() { return requires(M m, Function<_1, ValueType<M>> f) { // (>>=) :: m a -> (a -> m b) -> m b { m >>= f } -> M } } 。概念

这是否足以将调用f的结果限制为任何类型的Monad?

0 个答案:

没有答案