> You simply cannot declare an array whose size is not known at compile time.

In GCC you can. This feature is sailing under the name "Variable Length Array" ;)

Though I agree that it should be avoided, as it has several disadvantages: They are allocated on the stack which is limited to 8 MB on linux by default, and it is not standardized.

what you could do in this case is:

> Moreover, in the case of bool, you cannot even use the traditional vector<T> work-around either, because std::vector<bool> "is not a standard vector and does not contain bools" (S. Meyers, "Effective STL"). 

right. but you can use

```c++
std::shared_ptr<bool> isSat(new bool[rs.size()];
```

this will at least make sure it is deleted properly...