← Back to team overview

dolfin team mailing list archive

Re: std::vector and pointers

 

On Wed, Aug 19, 2009 at 10:14 PM, <kent-and@xxxxxxxxx> wrote:
>> I didn't realise until recently that storage in std::vector is
>> guaranteed by the C++ standard to be contiguous (versus only being
>> contiguous in all known implementations). Using this, I think that we
>> can have safer and cleaner code by using more std::vector in the linear
>> algebra interface. For example, we could have
>>
>>    GenericVector::get(std::vector<double>& );
>>    GenericVector::set(const std::vector<double>& );
>>
>> instead of
>>
>>    GenericVector::get(double* x);
>>    GenericVector::set(const double* x);
>>
>> For backends that want a pointer to an array, we can pass &x[0]. Any
>> opinions?
>>
>
> Is the use of &x[0] safe ? Will it change if the vector is resized ? This
> is maybe
> nothing to worry about ?

Sure, this is something to worry about, and there will be no magic here :)
However, it will enable us to make range checks and issue error
messages more easily.

Ola

> Kent
>
>> Garth
>> _______________________________________________
>> DOLFIN-dev mailing list
>> DOLFIN-dev@xxxxxxxxxx
>> http://www.fenics.org/mailman/listinfo/dolfin-dev
>>
>
>
> _______________________________________________
> DOLFIN-dev mailing list
> DOLFIN-dev@xxxxxxxxxx
> http://www.fenics.org/mailman/listinfo/dolfin-dev
>



-- 
Ola Skavhaug


Follow ups

References