On Wed, Sep 15, 2010 at 7:36 PM, Eric Niebler <eric@boostpro.com> wrote:
On 9/15/2010 10:14 PM, Suresh Kumar wrote:
> Hi
> I was trying to use boost::multi_array in a project where I am already
> using eigen2. The following lines does not compile in my code, though
> it compiles correctly outside my project ie as a standalone program
> where eigen is not used.
>
> typedef multi_array<double, 2> array_type;
> array_type scores(extents[1][1]);
>
> compiler error: ‘extents’ is not a type
>
> Any suggestions?

Looks like the Most Vexing Parse. Try adding parens:

array_type scores((extents[1][1]));

I tried 3 different things and each one gives a different error:

1. array_type scores((extents[1][1])); error: expected identifier before ‘(’ token

2. array_type::extent_gen extents; 
array_type scores((boost::extents[1][1])); 

long list of errors:  expected identifier before ‘(’ token
error: expected unqualified-id before ‘[’ token
error: expected ‘)’ before ‘[’ token
error: expected ‘)’ before ‘[’ token
error: ‘scores’ declared as function returning an array
error: expected ‘;’ before ‘)’ token

3. array_type::extent_gen extents; 
array_type scores(boost::extents[1][1]); 
error: ‘boost::extents’ has not been declared

needless to say i am going crazy with the compile errors. I am using Boost Version: 1.40.0.1 on Ubuntu 10.04 (in case this helps...)

thanks
suresh

--
R Suresh Kumar,
http://www.ee.ucr.edu/~sramachandranna
Sarve bhavantu sukinaha (May everyone be happy)
Sarve santu niramiyaha (May everyone be without affliction)
Sarve bhadrani pashyantu (May everyone see only goodness)
Ma kashchit dukha bhak bhavet (Let none be the victim of suffering)