Details
-
Sub-task
-
Resolution: Completed
-
Low
-
None
-
None
-
None
-
None
Description
I thought of opening an "improvement" to list the STL goodies that we would benefit from if they were backported to c++11. Feel free to close this if Jira is not the right place for this.
ROOT STL backports:
- std::array_view (core/foundation/inc/ROOT/RArrayView.hxx – should it become std::span?)
- std::string_view (core/foundation/inc/RStringView.h)
- std::apply (core/base/v7/inc/ROOT/RTupleApply.hxx )
- std::make_unique (core/foundation/inc/ROOT/RMakeUnique.hxx)
- std::not_fn (core/foundation/inc/ROOT/RNotFn.hxx)
Wish list:
- std::integer_sequence, std::make_index_sequence & co.
- TDF is now using a custom implementation, it would be good to have access to the real thing (which might take advantage of compiler intrinsics which our custom implementation does not)
- std::variant because it needs I/O magic support; there are backports (e.g. Michael Park's); reading a new file with variant into old ROOT might be useful; we have an (outside) use case of (mpark's) variant where they need to implement a custom streamer
- std::optional similar arguments as for variant.
Backports could live all together in core/foundation/backports. They should also be documented somewhere. Currently `std::string_view` is included via `core/foundation/inc/RStringView.h` but `std::array_view` is included via `core/foundation/inc/ROOT/RArrayView.hxx`.