counter.hpp 383 B

1234567891011121314151617
  1. #pragma once
  2. #include <mutex>
  3. namespace ylib {
  4. template<typename T>
  5. class counter{
  6. public:
  7. counter(const T& default_value = 0){m_value = default_value;}
  8. ~counter() {}
  9. T make(){
  10. std::unique_lock<std::mutex> guard(m_mutex);
  11. return ++m_value;
  12. }
  13. private:
  14. T m_value;
  15. std::mutex m_mutex;
  16. };
  17. }