Question: So I need to classify a spiral dataset. I have been experimenting with a bunch of algorithms like KNN, Kernel SVM, etc. I would like to try to improve the performance of Logistic Regression using feature engineering, preprocessing, etc.

I am also using scikit learn to do all of the classifications.

I fully understand Logistic Regression is not the proper algorithm to do this sort of problem. This is more of a learning excerise for Pre processing and other feature engineering/extraction methods to see how much I can improve this specific model.

Here is an example dataset I would use for the classification. Any suggestions of how I can manipulate the dataset to use in the Logistic Regression algorithm would be helpful.

[![Example Dataset](https://i.stack.imgur.com/biy1H.png)](https://i.stack.imgur.com/biy1H.png)

I also have datasets with multiple spirals as well. some datasets have 2 classes or sometimes up to 5. This means up to 5 spirals.

Answer: 
You're really trading in one compiler diagnostic for another, but here's one approach:

```
template <typename T, size_t S,
      typename=std::enable_if_t< (S>0) >>

```

Alternatively: use `static_assert` to get a friendlier error message:

```
template <typename T, size_t S>
class Example {

 private:

    static_assert(S>0);
    T values[S];
};

```

You'll get a friendlier error message however this template will still participate in overload resolution, which in some edge cases may be undesirable.
`T values[0];` is alread ill-formed. Thus, if you configure the compiler to not use language extensions, then it won't compile.

Or, you can use a `static_assert`.