Move Eigen::all,last,lastp1 back to Eigen::placeholders::.

These names are so common, IMO they should not exist directly in the Eigen:: namespace. This prevents us from using the last or all names for any parameters or local variables, otherwise the compiler spews warnings about shadowing or hiding the global values. Many external projects (and our own examples) also heavily use

using namespace Eigen;

which means these conflict with external libraries as well, e.g. std::fill(first,last,value).

It seems originally these were placed in a separate namespace Eigen::placeholders, which has since been deprecated. I propose to un-deprecate this, and restore the original locations.

These symbols are also imported into Eigen::indexing, which additionally imports fix and seq. An alternative is to remove the placeholders namespace and stick with indexing.

NOTE: this is an API-breaking change.

Fixes #2321 (closed).

Edited by Rasmus Munk Larsen

Merge request reports

Loading