[eigen] Eigen Needs Forward Declaration Files |

[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]

The standard library file
# include <iosfwd>
is a forward declarations file for the objects defined in <iostream>.
I have a need of such a file for the object
class Eigen::SimplicialLDLT;
Here is my reason.

`Compiling with eigen and g++ requires one to suppress certain warnings
``as follows:
` -Wno-shadow -Wno-deprecated-declarations

`I wish to limit the amount of source code that these warnings are
``suppressed for.
`

`In order to reduce the amount of source code that requires one to
``include the eigen headers, I am using the ideas in the pimpl idom. To be
``specific, I am using a forward declaration of the SimplicialLDLT class
``in most of my code. Only the code that actually does Eigen calculations
``is including the Eigen headers. For details, see the file
`https://github.com/bradbell/cppad_mixed/blob/0b3d3a461c62c052405e31d164b6bb9643b064f1/include/cppad/mixed/cholesky.hpp

`There is a problem with this. It seems that the number of template
``parameters in the SimplicialLDLT class changed. To be specific:
`
In eigen-3.2.1 I find two template parameters
template<typename _MatrixType, int _UpLo = Lower> class SimplicialLDLT;
In eigen-3.2.5 I find three template parameters

` template<typename _MatrixType, int _UpLo = Lower, typename
``_Ordering = AMDOrdering<typename _MatrixType::Index> > class SimplicialLDLT;
`

`Since eigen has no forward declarations file, this represents a change
``the the Eigen API.
`