TmplMould.tli 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. //
  2. #pragma once
  3. #include "TmplMould.tlh"
  4. //-----------------------------------------------------------------------------
  5. // TmplMould
  6. //-----------------------------------------------------------------------------
  7. namespace DIOS::Dev::Detail
  8. {
  9. template <typename T>
  10. bool TmplMould <T>::CanInc () const
  11. {
  12. return m_Value < m_LimitMax;
  13. }
  14. template <typename T>
  15. bool TmplMould <T>::CanDec () const
  16. {
  17. return m_Value > m_LimitMin;
  18. }
  19. template <typename T>
  20. bool TmplMould <T>::Verify (T value) const
  21. {
  22. return (m_LimitMin <= value && value <= m_LimitMax);
  23. }
  24. template <typename T>
  25. bool TmplMould <T>::Inc ()
  26. {
  27. if (m_Value >= m_LimitMax) return false;
  28. m_Value ++;
  29. return true;
  30. }
  31. template <typename T>
  32. bool TmplMould <T>::Dec ()
  33. {
  34. if (m_Value <= m_LimitMin) return false;
  35. m_Value --;
  36. return true;
  37. }
  38. template <typename T>
  39. bool TmplMould <T>::Update (T value)
  40. {
  41. if (value < m_LimitMin) return false;
  42. if (value > m_LimitMax) return false;
  43. if(value== m_Value) return false;
  44. m_Value = value;
  45. return true;
  46. }
  47. template <typename T>
  48. T TmplMould <T>::Get () const { return m_Value; }
  49. template <typename T>
  50. bool TmplMould <T>::ToNext (const std::vector <typename T>& ar)
  51. {
  52. return false;
  53. }
  54. template <typename T>
  55. bool TmplMould <T>::ToPrev (const std::vector <typename T>& ar)
  56. {
  57. return false;
  58. }
  59. template <typename T>
  60. bool TmplMould <T>::ToUpdate (T value, const std::vector <typename T>& ar)
  61. {
  62. return false;
  63. }
  64. };