- 245 名前:240 mailto:sage [2008/08/02(土) 17:06:39 ]
- >>244
いやいや、もちろんコンパイル時も使う。 定数のみを引数に取ったらコンパイル時に展開すればいい。 constexpr int pow(int x, unsigned int n) { return n > 0 ? x * pow(x, n - 1) : 1; } ... char buffer[pow(2, 8)]; // 定数 unsigned int n; std::cin >> n; std::cout << pow(2, n); // 変数 constexprを取ったら、配列のサイズが定数式じゃないから通らない。 テンプレートでメタ関数として書くと、今度は変数が使えない。
|

|