相关疑难解决方法(0)

为什么在D中使用静态?

我一直在阅读D语言中的模板系统,并发现了一个不寻常的结构,static if.

根据我设法掌握的内容,它在编译时进行了评估,但是从我搜索的内容来看,这里显示的示例并没有给我带来太多启发.

template Factorial(ulong n)
{
    static if(n < 2)
        const Factorial = 1;
    else
        const Factorial = n * Factorial!(n - 1);
}
Run Code Online (Sandbox Code Playgroud)

static if什么,什么时候应该使用它?

templates d

8
推荐指数
1
解决办法
2753
查看次数

如何在编译时从一些不同的类型中选择类型?

我想做这样的事情:

template <uint64_t N>
struct a {
  static constexpr T1 v1 = {};
  static constexpr T2 v2 = {};
  static constexpr auto v3 = (N % 2 == 1 ? v1 : v2);
};
Run Code Online (Sandbox Code Playgroud)

但是我不能将 (? :) 用于不同类型。我怎么能做到这一点?

c++ metaprogramming c++11 c++14

2
推荐指数
1
解决办法
96
查看次数

标签 统计

c++ ×1

c++11 ×1

c++14 ×1

d ×1

metaprogramming ×1

templates ×1