Я хочу иметь возможность передавать целое число через аргумент командной строки, который я буду называть длиной. Мне нужно сделать эту константу, потому что она будет использоваться для определения размера нескольких битовых наборов. Я пытался сделать это многими способами, например:
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;
}
Но ни один из способов, которыми я пробовал, не работал. Как я могу сделать это?
Если он будет передан в качестве аргумента командной строки, вы не сможете сделать его константой.
Кстати, это относится к вашему случаю: Определить размер набора битов при инициализации?
Длина набора битов необходима во время компиляции, поэтому независимо от того, как вы ее попробуете, невозможно передать это значение во время выполнения.