dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #14916
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