#ifndef SPROUT_UTILITY_NONCOPYABLE_HPP #define SPROUT_UTILITY_NONCOPYABLE_HPP #include namespace sprout { namespace noncopyable_ { class noncopyable { protected: SPROUT_CONSTEXPR noncopyable() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL ~noncopyable() SPROUT_DEFAULTED_DESTRUCTOR_DECL private: noncopyable(noncopyable const&) SPROUT_DELETED_FUNCTION_DECL noncopyable& operator=(noncopyable const&) SPROUT_DELETED_FUNCTION_DECL }; } // namespace noncopyable_ // // noncopyable // typedef sprout::noncopyable_::noncopyable noncopyable; } // namespace sprout #endif // #ifndef SPROUT_UTILITY_NONCOPYABLE_HPP