Newer
Older
libj / include / j / lang / iterable.hpp
/**
 * @file iterable.hpp
 * @brief J Library Iterable ヘッダファイル。
 * @copyright  2001 - 2024  Nomura Kei
 * @depends
 *   j/lang/object.hpp
 */
#ifndef J_LANG_ITERABLE_HPP
#define J_LANG_ITERABLE_HPP

#include <memory>

#include <j/lang/object.hpp>
#include <j/util/iterator.hpp>

namespace j
{
    namespace lang
    {

        template <typename T>
        class Iterable
        {
        public:
            virtual ~Iterable() = default;
            virtual std::unique_ptr<j::util::Iterator<T>> iterator() const = 0;
        };

    } // namespace lang
} // namespace j

#endif // J_LANG_ITERABLE_HPP