我想将一个非常量变量转换为常量变量。我尝试使用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'用于使对象不可修改,'constexpr'用于在编译时使值可用。 –