Bug category
Describe the bug
Thank you for your work on this great software, but I'm facing some difficulties with it. I would appreciate if you could help me.
The document says that matplot++ can handle any ranges, but it seems not to be true (e.g., <ranges> in C++20, C-style arrays). This is because IterableValues requires definitions of const_iterator type, begin/end and size member functions. These are different from the general concept of range in C++ and so neither <ranges> nor C-style array satisfy them.
I would like to suggest modifying them to the same requirements as the range-based for loop (since C++17).
In addition, the following code cannot be compiled with Visual Studio 2022.
std::list<double> x{ 1, 2, 3, 4, 5 }, y{ 1, 2, 3, 4, 5 };
scatter(x, y);
It is due to the failure of the template arguments T3 and T4 deduction when calling the scatter member function of axes_type below.
template <class T1, class T2, class T3, class T4>
line_handle scatter(const IterableValues<T1> &x,
const IterableValues<T2> &y,
const IterableValues<T3> &sizes = {},
const IterableValues<T4> &colors = {}) {
return scatter(to_vector_1d(x), to_vector_1d(y),
to_vector_1d(sizes), to_vector_1d(colors));
}
So the scatter function needs explicit 4 arguments to use ranges other than std::vector, like scatter(x, y, std::list<double>{}, std::list<double>{}).
Platform
Bug category
Describe the bug
Thank you for your work on this great software, but I'm facing some difficulties with it. I would appreciate if you could help me.
The document says that matplot++ can handle any ranges, but it seems not to be true (e.g.,
<ranges>in C++20, C-style arrays). This is becauseIterableValuesrequires definitions ofconst_iteratortype,begin/endandsizemember functions. These are different from the general concept of range in C++ and so neither<ranges>nor C-style array satisfy them.I would like to suggest modifying them to the same requirements as the range-based for loop (since C++17).
In addition, the following code cannot be compiled with Visual Studio 2022.
It is due to the failure of the template arguments T3 and T4 deduction when calling the
scattermember function ofaxes_typebelow.So the
scatterfunction needs explicit 4 arguments to use ranges other thanstd::vector, likescatter(x, y, std::list<double>{}, std::list<double>{}).Platform