#pragma once

/**
 * \file NonCopyable.h
 * \brief File containing the blitz::NonCopyable class
 */

namespace blitz {

/**
 * \class NonCopyable
 * \brief Class used to make a class non copyable
 * \note Inherit from this class privately to make a class non copyable
 */
class NonCopyable {
  public:
	NonCopyable(const NonCopyable&) = delete;
	NonCopyable& operator=(const NonCopyable&) = delete;

  protected:
	NonCopyable() {}
	~NonCopyable() {}
};

}  // namespace blitz
