BS 0.0.1 Runtime/Generic/Sequence

This commit is contained in:
ninemine
2025-06-12 22:50:33 +08:00
parent d7213d1d3e
commit 627dfca10d
2 changed files with 17 additions and 32 deletions

View File

@@ -9,19 +9,31 @@ namespace Convention
namespace Generics
{
class IIterator
template<typename Element,typename ReadValueType = Element&>
class ISequenceIterator
{
public:
virtual ~ISequenceIterator() {}
virtual void Next() abstract;
virtual ReadValueType ReadValue() const abstract;
virtual decltype(auto) operator++()
{
}
ReadValueType operator++(int) noexcept(noexcept(operator++))
{
}
};
template<typename>
template<typename Element, typename SequenceIterator = ISequenceIterator<Element>>
class ISequence
{
public:
using iterator = std::enable_if<std::is_base_of_v<ISequenceIterator<Element>, SequenceIterator>, SequenceIterator>;
virtual ~ISequence() {}
virtual IIterator begin() abstract;
virtual IIterator end() abstract;
virtual iterator begin() abstract;
virtual iterator end() abstract;
};
/**