mirror of
https://github.com/nlohmann/json.git
synced 2026-10-15 18:57:13 +00:00
Add to_json overloads for rvalue array-like and object-like containers that build the array/object from move iterators, so that json j = std::move(vec) moves the elements instead of copying them. std::vector<std::string> (100k x 40 chars): 4.7 ms -> 2.3 ms; std::map<std::string, std::string>: -18 % (keys are const and still copied). array_t/object_t, std::vector<bool>, std::filesystem::path and std::u8string keep their dedicated overloads. Lvalues and const rvalues are copied as before. Signed-off-by: Niels Lohmann <mail@nlohmann.me>