私はテンプレートを試していて、この単純なクラスメソッドを書きました:
void Decimal::toBinary(size_t bits) {
// decimalNumber being a class private variable (long double)
std::bitset< bits > result(decimalNumber);
std::cout << result << std::endl;
}
size_t bits
関数の引数をビットセット テンプレートに渡そうとしています。
C++ Bitset Referenceによると、実装は実際に size_t 引数を取ります。
template < size_t N > class bitset;
しかし、私は得ています
src/decimal.cc:11: error: ‘bits’ cannot appear in a constant-expression
src/decimal.cc:11: error: template argument 1 is invalid
src/decimal.cc:11: error: invalid type in declaration before ‘(’ token
私はこれを行うことができないと思います...回避策はありますか?