Opened 15 years ago

Closed 15 years ago

#1234 closed Bugs (fixed)

unbounded_array copy constructor does not compile with intel v 9.1

Reported by: heibel@… Owned by: Gunter
Milestone: To Be Determined Component: uBLAS
Version: Boost 1.34.1 Severity: Problem
Keywords: Cc:

Description

Hi there,

I just happened to stumble over a small issue when trying to compile ublas::unbounded_array with the Intel Compiler v9.1.

A small example:

typedef boost::numeric::ublas::vector<float, boost::numeric::ublas::row_major, boost::numeric::ublas::unbounded_array<float, 4> > Vector4;

Vector4 a;
Vector4 b(a); // does not compile.

The problem is that the template parameters for std::copy operation within the unbounded_array can not be deduced. The first one is 'const float[4]', the second one is 'const float*' and the third one is 'float[4]'. By changing the _data access to using the provided iterator methods everything is working fine.

Regards, Hauke

Attachments (1)

storage_unbounded_copy.patch (533 bytes ) - added by heibel@… 15 years ago.
patch for storage.hpp

Download all attachments as: .zip

Change History (4)

by heibel@…, 15 years ago

patch for storage.hpp

comment:1 by heibel@…, 15 years ago

Sorry, really...

I am not sure what was wrong with me before. This is the correct sample code:

#include <boost/numeric/ublas/vector.hpp>

int main(int argc, char* argv[]) 
{
	typedef boost::numeric::ublas::vector<float, boost::numeric::ublas::bounded_array<float, 4> > BVector4;

	BVector4 a;
	BVector4 b(a); // does not compile.
}

And I forgot to mention it before, but it is properly compiling under VC7.

Cheers, Hauke

comment:2 by Gunter, 15 years ago

Owner: set to Gunter

comment:3 by Gunter, 15 years ago

Resolution: fixed
Status: newclosed

I modified storage.hpp as suggested. Please notify me if there are more problems with icc 9.1

Note: See TracTickets for help on using tickets.