Closed JamieStM closed 1 year ago
Yes I know. That's on my todo list to enhance. The reason for this is to create that interface mandates copying data which is inefficient. But I will do it in the next couple of weeks.
Also, when I fix that you will need C++20 because master now needs C++20
This has been implemented in master
Trialing this library, I found an issue with the
groupby*
functions: you can't pass an aggregate visitor, e.g.MedianVisitor
,QuantileVisitor
,ModeVisitor
,MADVisitor
, etc, as it will fail to compile. This is because the internal_load_groupby_data_*
functions call the visitors with only two arguments (index and cell value), whereas the aggregate visitors require four arguments (first index, last index, first cell value, last cell value). These are pretty standard visitors that I would expect to be valid use cases for groupby.v2.1.0 (from vcpkg), C++17, MSVC.
Reproducible example:
From this, there's an error raised that directs me to here, specifically line 121:
https://github.com/hosseinmoein/DataFrame/blob/d62c8dd820d815b699666a70e22426beedac455c/include/DataFrame/Internals/DataFrame_standalone.tcc#L117-L126
Which is because
visitor(int, int);
isn't compatible withMedianVisitor::operator()
:https://github.com/hosseinmoein/DataFrame/blob/d62c8dd820d815b699666a70e22426beedac455c/include/DataFrame/DataFrameStatsVisitors.h#L2521-L2541