定数でない変数を定数変数に変換したい。私はconst_castを使ってみましたが、次のプログラムは 'bitsize1'が定数式に現れないというエラーを出しています。何が間違っているのですか?C++:定数を定数にキャストしない
#include <string>
#include <bitset>
#include <iostream>
using namespace std;
int main(){
int l = 3; // taken input from user
int bitsize2 = (l * 2);
int bitsize1 = const_cast<int&>(bitsize2);
string temp = "100101";
bitset<const_cast<int&>(bitsize2)> baz (temp);
cout << baz;
return 0;
}
コンパイル時にテンプレートパラメータを知っている必要があります。 –
定数式とconstオブジェクトの間に混乱が生じています。 'const'はオブジェクトを変更不可能にするためのもので、' constexpr'はコンパイル時に値を利用可能にするためのものです。 –