vendor/fastText/src/utils.h in fasttext-0.1.2 vs vendor/fastText/src/utils.h in fasttext-0.1.3

- old
+ new

@@ -9,11 +9,13 @@ #pragma once #include "real.h" #include <algorithm> +#include <chrono> #include <fstream> +#include <ostream> #include <vector> #if defined(__clang__) || defined(__GNUC__) #define FASTTEXT_DEPRECATED(msg) __attribute__((__deprecated__(msg))) #elif defined(_MSC_VER) @@ -35,9 +37,36 @@ template <typename T> bool contains(const std::vector<T>& container, const T& value) { return std::find(container.begin(), container.end(), value) != container.end(); } + +template <typename T1, typename T2> +bool containsSecond( + const std::vector<std::pair<T1, T2>>& container, + const T2& value) { + return std::find_if( + container.begin(), + container.end(), + [&value](const std::pair<T1, T2>& item) { + return item.second == value; + }) != container.end(); +} + +double getDuration( + const std::chrono::steady_clock::time_point& start, + const std::chrono::steady_clock::time_point& end); + +class ClockPrint { + public: + explicit ClockPrint(int32_t duration); + friend std::ostream& operator<<(std::ostream& out, const ClockPrint& me); + + private: + int32_t duration_; +}; + +bool compareFirstLess(const std::pair<double, double>& l, const double& r); } // namespace utils } // namespace fasttext