用模板进行C ++懒惰评估

这个问题在这里已经有了答案:

  • 切换从模板4的答案传递类型

  • if(is_recursable<A>::value == 1)
      /* printf("1 %s", typeid(B).name()); */
      lhs.printrec();
    else
      printf("0");
    

    直到constexpr if存在,你不能这样做。 原因在于,编译器必须假设即使两个分支都不可达,两个分支都是可能的 - 好像它应该能够说明的一样,但是它不被语言所允许。 你需要使用标签调度或其他编译时构造。

    看到这个答案

    链接地址: http://www.djcxy.com/p/86331.html

    上一篇: C++ lazy evaluation with templates

    下一篇: Visual C++ Odeint integrate