C++ Logo

SG14

Advanced search

Subject: Re: [SG14] P1385
From: Thomas Cassimon (thomas.cassimon_at_[hidden])
Date: 2019-02-07 06:23:00


Hello everyone,

I'm new here and trying to get involved in the standardisation process for C++.
I noticed that P1385 is getting a lot of attention, so I took a look at it myself. I've also been working on an implementation which you can find at https://bitbucket.org/ThomasCassimon/p1385/src/master/
(I haven't been able to find R1 of the paper, so anything I say is based on R0)
<https://bitbucket.org/ThomasCassimon/p1385/src/master/>

My implementation is far from done, but I've completed the storage engines highlighted in R0. The repository also has a suite of tests written using Catch2.

Here are the most important things I've noticed about R0:

  * Some of the methods of matrix_transpose_engine seem weird for a non-owning transposed view (Take for example data(), the pointer returned by this method won't be transposed, right? Otherwise, the transpose engine needs to make a copy, transpose the data and return a pointer to the copied data, but then its not a view anymore, right?)
  * dyn_matrix_engine doesn't seem to have a way to specify size (and/or capacity) at construct time.
  * The memory layout for dyn_matrix_engine also needs to be discussed, I've found 2 options already, both with advantages and disadvantages. This image (https://bitbucket.org/ThomasCassimon/p1385/src/master/img/memory_layout.png) should clarify what I mean.
  * I've also found the resize/reserve semantics for a 2D array to be far from trivial, they require some design decisions to be made, this is also something that needs to be addressed.

Those are the major points I had about P1385, the code also contains todo's for a number of smaller things, feel free to browse, give feedback and discuss.

Thomas



SG14 list run by herb.sutter at gmail.com

Older archives