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 the following 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])); 

--
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)