mercredi 22 avril 2015

Constructing a valarray using raw data

It seems I might be using std::valarray<_Tp>s for some computational work (suppose _Tp is uint64_t). Unfortunately, the following hold:

  • my code receives raw arrays - uint64_t*s and a length value -
  • I can't change signatures/APIs. They're __restrict__ed though.
  • std::valarray's constructor which takes a _Tp* and a length copies the entire array.
  • There do not seem to be methods for setting std::valarray's internal data; it's even private so you can't access it in a subclass.

So how do I break this Gordian knot and construct a valarray without copying my data?

Aucun commentaire:

Enregistrer un commentaire