Replace EIGEN_STATIC_ASSERTION by a true static assertion

Submitted by Christoph Hertzberg @chhtz

Assigned to Nobody

Link to original bugzilla bug (#742)
Version: 3.2

Description

Currently EIGEN_STATIC_ASSERT must be placed in code which is actually executed. For some assertions such checking template parameters this makes it necessary to be called from all constructors.
BOOST_STATIC_ASSERT essentially makes a typedef which does not compile if the condition is false:
http://www.boost.org/doc/libs/1_55_0/boost/static_assert.hpp

This can be put anywhere inside a class and (I assume) it is guaranteed to not produce instructions regardless of optimization options.

Blocking

#558 (closed)

Edited by Eigen Bugzilla