Add Merge() specializations to support more Element containers (#1117)

`Merge()` was previously only supporting `Elements` as a `Element` container.  
This PR adds specialization for:
- all the containers that matches the concept `std::ranges::range`
- `std::queue`
- `std::stack`

Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com>
Bug:https://github.com/ArthurSonzogni/FTXUI/issues/1108
Fixed:https://github.com/ArthurSonzogni/FTXUI/issues/1108
This commit is contained in:
Nicolas Busser
2025-10-19 23:53:33 +09:00
committed by GitHub
parent 68281ce3e8
commit 09e690f8ab
6 changed files with 88 additions and 20 deletions

View File

@@ -173,7 +173,7 @@ class InputBase : public ComponentBase, public InputOption {
elements.push_back(element);
}
auto element = vbox(std::move(elements), cursor_line) | frame;
auto element = vbox(std::move(elements)) | frame;
return transform_func({
std::move(element), hovered_, is_focused,
false // placeholder

View File

@@ -145,8 +145,8 @@ class MenuBase : public ComponentBase, public MenuOption {
}
const Element bar = IsHorizontal()
? hbox(std::move(elements), selected_focus_)
: vbox(std::move(elements), selected_focus_);
? hbox(std::move(elements))
: vbox(std::move(elements));
if (!underline.enabled) {
return bar | reflect(box_);

View File

@@ -46,7 +46,7 @@ class RadioboxBase : public ComponentBase, public RadioboxOption {
}
elements.push_back(element | reflect(boxes_[i]));
}
return vbox(std::move(elements), hovered_) | reflect(box_);
return vbox(std::move(elements)) | reflect(box_);
}
// NOLINTNEXTLINE(readability-function-cognitive-complexity)