如何在 C++ 中通过命令行参数传递常量 int?

How can I pass a constant int via command line argument in C++?

我希望能够通过我将称为长度的命令行参数传递一个整数。我需要使这个常量,因为它将用于确定几个位集的大小。我尝试过很多方法,例如:

int main(int arc, const char* argv[]){
        const int * ptr;
        if (!(istringstream{argv[1]} >> ptr)) { return 1;}
        const int length = *ptr;

        bitset<length> right_ones = 1;
        return 0;
}

我也这样试过:

int main(int arc, const char* argv[]){
        int test_int;   
        if (!(istringstream{argv[1]} >> test_int)) { return 1;}
        const int length = argv[1];

        bitset<length> right_ones = 1;
        return 0;
}

但是 none 我试过的方法都奏效了。我怎样才能做到这一点?

如果要将其作为命令行参数传递,则不能将其设为常量。

顺便说一句,这与你的情况有关:Define bitset size at initialization?

编译时需要位集的长度,因此无论您如何尝试,都无法在运行时传递该值。