Program Listing for File abstract_cloneable.hpp¶
↰ Return to documentation for file (fwdpp/util/abstract_cloneable.hpp)
#ifndef FWDPP_UTIL_ABSTRACT_CLONEABLE_HPP__
#define FWDPP_UTIL_ABSTRACT_CLONEABLE_HPP__
#include <memory>
namespace fwdpp
{
namespace util
{
template <typename T> struct abstract_cloneable
{
virtual std::unique_ptr<T> clone() const = 0;
abstract_cloneable() = default;
virtual ~abstract_cloneable() = default;
abstract_cloneable(const abstract_cloneable &) = delete;
abstract_cloneable(abstract_cloneable &&) = delete;
abstract_cloneable &operator=(const abstract_cloneable &) = delete;
abstract_cloneable &operator=(abstract_cloneable &&) = delete;
};
} // namespace util
} // namespace fwdpp
#endif