#pragma once class SqlliteDb; class Transaction { public: explicit Transaction(SqlliteDb &db); ~Transaction(); Transaction(const Transaction &) = delete; Transaction &operator=(const Transaction &) = delete; Transaction(Transaction &&other) noexcept; Transaction &operator=(Transaction &&other) noexcept; void commit(); private: SqlliteDb *db_{ nullptr }; bool isCommited_{ false }; };