diff --git a/src/phoneExtraction.cpp b/src/phoneExtraction.cpp index c5c9652..278f68b 100644 --- a/src/phoneExtraction.cpp +++ b/src/phoneExtraction.cpp @@ -9,6 +9,7 @@ #include #include #include +#include extern "C" { #include @@ -116,7 +117,7 @@ void sphinxErrorCallback(void* user_data, err_lvl_t errorLevel, const char* form // Create varArgs list va_list args; va_start(args, format); - auto _ = finally([&args]() { va_end(args); }); + auto _ = gsl::finally([&args]() { va_end(args); }); // Format message const int initialSize = 256; diff --git a/src/tools.h b/src/tools.h index 61cac9f..a19118e 100644 --- a/src/tools.h +++ b/src/tools.h @@ -7,30 +7,3 @@ template using lambda_unique_ptr = std::unique_ptr>; - -// The following definitions are taken from https://github.com/Microsoft/GSL. - -// final_act allows you to ensure something gets run at the end of a scope -template -class final_act -{ -public: - explicit final_act(F f) noexcept : f_(std::move(f)), invoke_(true) {} - - final_act(final_act&& other) noexcept : f_(std::move(other.f_)), invoke_(other.invoke_) { other.invoke_ = false; } - final_act(const final_act&) = delete; - final_act& operator=(const final_act&) = delete; - - ~final_act() noexcept { if (invoke_) f_(); } - -private: - F f_; - bool invoke_; -}; - -// finally() - convenience function to generate a final_act -template -final_act finally(const F &f) noexcept { return final_act(f); } - -template -final_act finally(F &&f) noexcept { return final_act(std::forward(f)); }