blob: c95dbccf25e5e91eb7e62d8fc22b8c125ea12adc [file] [log] [blame]
//========================================================================
//
// GooList.h
//
// Copyright 2001-2003 Glyph & Cog, LLC
//
//========================================================================
//========================================================================
//
// Modified under the Poppler project - http://poppler.freedesktop.org
//
// All changes made under the Poppler project to this file are licensed
// under GPL version 2 or later
//
// Copyright (C) 2012, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2018 Adam Reichold <adam.reichold@t-online.de>
//
// To see a description of the changes please see the Changelog file that
// came with your tarball or type make ChangeLog if you are building from git
//
//========================================================================
#ifndef GOO_LIST_H
#define GOO_LIST_H
#include <algorithm>
#include <vector>
//------------------------------------------------------------------------
// GooList
//------------------------------------------------------------------------
template <typename T>
class GooList : public std::vector<T> {
public:
// Create an empty list.
GooList() = default;
// Movable but not copyable
GooList(GooList &&other) = default;
GooList& operator=(GooList &&other) = default;
GooList(const GooList &other) = delete;
GooList& operator=(const GooList &other) = delete;
// Zero cost conversion from std::vector
explicit GooList(const std::vector<T>& vec) : std::vector<T>(vec) {}
explicit GooList(std::vector<T>&& vec) : std::vector<T>(std::move(vec)) {}
};
#endif // GOO_LIST_H