#ifndef _FLUENT_HPP_ #define _FLUENT_HPP_ #include #include #include "functional_unwrap.hpp" class fluent_step { bool released; void release() { int i = 0; } public: fluent_step() : released(false) { } ~fluent_step() { if (!released) release(); } fluent_step(fluent_step const&) = delete; fluent_step(fluent_step&& right) : released(false) { right.released = true; } fluent_step& operator= (fluent_step const&) = delete; fluent_step& operator= (fluent_step&& right) { released = false; right.released = true; } template fluent_step& then(Callback const& callback) { return *this; } }; template fluent_step make_waterfall() { return fluent_step(); } void do_export(); #endif /// _FLUENT_HPP_