#include <xtd/collections/generic/ienumerator>
#include <xtd/collections/generic/list>
#include <xtd/console>
int width = 0;
int height = 0;
int32 compare_to(const ::box&
o)
const noexcept override {
return 0;}
bool equals(const ::box&
o)
const noexcept override {
return length ==
o.length && width ==
o.width && height ==
o.height;}
string to_string()
const noexcept {
return string::format(
"box [length={}, width={}, height={}]",
length, width, height);}
};
public:
explicit box_enumerator(const box_collection& boxes) : boxes {boxes} {}
const ::box&
current()
const override {
return boxes[cur_index];}
bool move_next() override {return ++cur_index < boxes.size();}
void reset() override {cur_index = box_integer<size>::max_value;}
private:
const box_collection& boxes;
size cur_index = box_integer<size>::max_value;
};
auto main() -> int {
auto boxes = box_collection {{10, 20, 30}, {20, 5, 10}, {12, 3, 7}};
}
Supports a simple iteration over a generic collection.
Definition ienumerator.hpp:58
Represents a strongly typed list of objects that can be accessed by index. Provides methods to search...
Definition list.hpp:80
static void write_line()
Writes the current line terminator to the standard output stream using the specified format informati...
Defines a generalized comparison method that a value type or class implements to create a type-specif...
Definition icomparable.hpp:21
Defines a generalized method that a value type or class implements to create a type-specific method f...
Definition iequatable.hpp:22
size_t size
Represents a size of any object in bytes.
Definition size.hpp:23
int32_t int32
Represents a 32-bit signed integer.
Definition int32.hpp:23
@ current
Specifies the current position within a stream.
Definition seek_origin.hpp:20
@ h
The H key.
Definition console_key.hpp:102
@ l
The L key.
Definition console_key.hpp:110
@ o
The O key.
Definition console_key.hpp:116
@ w
The W key.
Definition console_key.hpp:132
The xtd::collections::generic namespace contains interfaces and classes that define generic collectio...
Definition comparer.hpp:16
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition abstract_object.hpp:8
string to_string() const noexcept override
Returns the string representation of this xtd::read_only_span <type_t> object.
Definition read_only_span.hpp:375
bool equals(const object &obj) const noexcept override
Determines whether the specified object is equal to the current object.
Definition read_only_span.hpp:272
constexpr size_type length() const noexcept
Returns the length of the current read_only_span.
Definition read_only_span.hpp:229
Represents a boxed object.
Definition box.hpp:57
Supports a simple iteration over a generic collection.
Definition enumerator.hpp:38
const type_t & current() const override
Gets the element in the collection at the current position of the enumerator.
Definition enumerator.hpp:62
bool move_next() override
Advances the enumerator to the next element of the collection.
Definition enumerator.hpp:71