Newer
Older
libj / modules / libj / include / j / util / collection.hpp
Nomura Kei on 31 Dec 817 bytes 一時保存
/**
 * @file collection.hpp
 * @brief J Library Collection ヘッダファイル。
 * @copyright  2001 - 2024  Nomura Kei
 * @depends
 *   j/lang/iterable.hpp
 */
#ifndef J_UTIL_COLLECTION_HPP
#define J_UTIL_COLLECTION_HPP

#include <j/lang/iterable.hpp>

namespace j
{
    namespace util
    {

        template <typename T>
        class Collection : public j::lang::Iterable<T>
        {
        public:
            virtual ~Collection() = default;
            virtual int size() const = 0;
            virtual bool isEmpty() const = 0;
            virtual bool contains(const T &t) const = 0;
            virtual bool add(const T &t) = 0;
            virtual void clear() = 0;
            virtual bool remove(const T &t) = 0;
        };

    } // namespace util
} // namespace j

#endif // J_UTIL_COLLECTION_HPP