Re: [eigen] Fwd: problem with compile on AIX system

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


perhaps you could try to expand the macro
_EIGEN_GENERIC_PUBLIC_INTERFACE(Block, MapBase<Block>) yourself using
its definition:

#define _EIGEN_GENERIC_PUBLIC_INTERFACE(Derived, BaseClass) \
typedef BaseClass Base; \
typedef typename Eigen::ei_traits<Derived>::Scalar Scalar; \
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar; \
typedef typename Base::PacketScalar PacketScalar; \
typedef typename Eigen::ei_nested<Derived>::type Nested; \
enum { RowsAtCompileTime = Eigen::ei_traits<Derived>::RowsAtCompileTime, \
       ColsAtCompileTime = Eigen::ei_traits<Derived>::ColsAtCompileTime, \
       MaxRowsAtCompileTime = Eigen::ei_traits<Derived>::MaxRowsAtCompileTime, \
       MaxColsAtCompileTime = Eigen::ei_traits<Derived>::MaxColsAtCompileTime, \
       Flags = Eigen::ei_traits<Derived>::Flags, \
       CoeffReadCost = Eigen::ei_traits<Derived>::CoeffReadCost, \
       SizeAtCompileTime = Base::SizeAtCompileTime, \
       MaxSizeAtCompileTime = Base::MaxSizeAtCompileTime, \
       IsVectorAtCompileTime = Base::IsVectorAtCompileTime };

so that you get the exact line which makes problem, and then try to
simplify/rewrite it until your compiler is happy.

gael

On Mon, Mar 30, 2009 at 7:35 PM, Artem Gubanov <artem.gubanov@xxxxxxxxx> wrote:
> Thanks for your quick responce!
>
> But It didn't help..
> Still have problem:
> "/home/artem/opt/Eigen/src/Core/Block.h", line 221.9: 1540-0062 (S) The
> incomplete class "ei_traits<Eigen::Block>" must not be used as a qualifier.
> "/home/artem/opt/Eigen/src/Core/CwiseUnaryOp.h", line 60.22: 1540-0198 (W)
> The omitted keyword "private" is assumed for base class
> "ei_no_assignment_operator".
> "/home/artem/opt/Eigen/src/Core/CwiseUnaryOp.h", line 60.22: 1540-0198 (W)
> The omitted keyword "private" is assumed for base class
> "ei_no_assignment_operator".
> "/home/artem/opt/Eigen/src/Core/CwiseBinaryOp.h", line 80.23: 1540-0198 (W)
> The omitted keyword "private" is assumed for base class
> "ei_no_assignment_operator".
> "/home/artem/opt/Eigen/src/Core/CwiseBinaryOp.h", line 80.23: 1540-0198 (W)
> The omitted keyword "private" is assumed for base class
> "ei_no_assignment_operator".
>
>
> I replaced as you suggested:
>
>     // #220 _EIGEN_GENERIC_PUBLIC_INTERFACE(Block, MapBase<Block>)
>     typedef Block<MatrixType, BlockRows, BlockCols, PacketAccess,
> HasDirectAccess> ThisBlockType;
>     _EIGEN_GENERIC_PUBLIC_INTERFACE(ThisBlockType, MapBase<ThisBlockType>)
>
>     class InnerIterator;
>     typedef typename ei_traits<Block>::AlignedDerivedType
> AlignedDerivedType;
>
>     EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Block)
>
>
>
>
>
> 2009/3/30 Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
>>
>> OK, for #8 please try the following:
>>
>> at line 220 in Eigen/src/Core/Block.h, you have:
>>
>>    _EIGEN_GENERIC_PUBLIC_INTERFACE(Block, MapBase<Block>)
>>
>> replace that line by:
>>
>>    typedef Block<MatrixType,BlockRows,BlockCols,
>>                    PacketAccess,HasDirectAccess> ThisBlockType;
>>    _EIGEN_GENERIC_PUBLIC_INTERFACE
>>        (ThisBlockType, MapBase<ThisBlockType>)
>>
>> Cheers,
>> Benoit
>>
>> 2009/3/29 Artem Gubanov <artem.gubanov@xxxxxxxxx>:
>> >
>> >
>> > ---------- Forwarded message ----------
>> > From: Artem Gubanov <artem.gubanov@xxxxxxxxx>
>> > Date: 2009/3/29
>> > Subject: problem with compile on AIX system
>> > To: eigen-request@xxxxxxxxxxxxxxxxxxx
>> >
>> >
>> > Eigen:
>> >
>> > I tried to compile my program on AIX system (xlc++_r compiler, version
>> > 8).
>> > I got some errors and some of them I fixed (err 1-7), I'll really
>> > appreciate
>> > if you fix it in Eigen 2.1 :)
>> > But I have a problem with #8 (very likely I'm beginner in c++).
>> > Hope you'll help me.
>> >
>> > Thanks!
>> >
>> > (1)
>> > /opt/Eigen/src/Core/MathFunctions.h", line 74.23: 1540-0291 (S) The
>> > template
>> > argument for "T" cannot be found.
>> > template<> inline int ei_random()
>> > template<> inline int ei_random<int>()
>> >
>> > (2)
>> > /opt/Eigen/src/Core/MathFunctions.h", line 119.25: 1540-0291 (S) The
>> > template argument for "T" cannot be found.
>> > template<> inline float ei_random()
>> > template<> inline float ei_random<float>()
>> >
>> > (3)
>> > /opt/Eigen/src/Core/MathFunctions.h", line 164.26: 1540-0291 (S) The
>> > template argument for "T" cannot be found.
>> > template<> inline double ei_random<double>()
>> >
>> > (4)
>> > /opt/Eigen/src/Core/MathFunctions.h", line 195.39: 1540-0291 (S) The
>> > template argument for "T" cannot be found.
>> > template<> inline std::complex<float> ei_random()
>> > template<> inline std::complex<float> ei_random< std::complex<float> >()
>> >
>> > (5)
>> > /opt/Eigen/src/Core/MathFunctions.h", line 228.40: 1540-0291 (S) The
>> > template argument for "T" cannot be found.
>> > template<> inline std::complex<double> ei_random()
>> > template<> inline std::complex<double> ei_random< std::complex<double>
>> > >()
>> >
>> > (6)
>> > /opt/Eigen/src/Core/MathFunctions.h", line 269.31: 1540-0291 (S) The
>> > template argument for "T" cannot be found.
>> > template<> inline long double ei_random()
>> > template<> inline long double ei_random<long double>()
>> >
>> > (7)
>> > /opt/Eigen/src/Core/CacheFriendlyProduct.h", line 36.13: 1540-0400 (S)
>> > "template <class Scalar> Eigen::ei_cache_friendly_product(int, int, int,
>> > bool, const Scalar *, int, bool, const Scalar *, int, bool, Scalar *,
>> > int)"
>> > has a conflicting declaration.
>> > static void ei_cache_friendly_product(...
>> > void ei_cache_friendly_product(...
>> >
>> > (8)
>> > /opt/Eigen/src/Core/Block.h", line 220.5: 1540-0062 (S) The incomplete
>> > class
>> > "ei_traits<Eigen::Block>" must not be used as a qualifier.
>> > ???
>> >
>> >
>> >
>> > --
>> > Regards,
>> > Artem
>> >
>> >
>> >
>> > --
>> > Regards,
>> > Artem
>> >
>>
>>
>
>
>
> --
> Regards,
> Artem
>



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/