Advertisement
RobertDeMilo

BB3.2 const защищает от случайного изменения

Jun 13th, 2024
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.75 KB | None | 0 0
  1. ////#include "test_runner.h"
  2. //
  3. //#include <algorithm>
  4. //#include <iostream>
  5. //#include <map>
  6. //#include <string>
  7. //#include <unordered_map>
  8. //#include <optional>
  9. //
  10. //using namespace std;
  11. //
  12. //template<typename T>
  13. //void CopyIfNotEqual(const vector<T>& src, vector<T>& dst, T value)
  14. //{
  15. //  std::remove_copy(begin(src), end(src), back_inserter(dst), value);
  16. //}
  17. //
  18. //void TestCopyIfNotEqual()
  19. //{
  20. //  vector<int> values = { 1,3,8,3,2,4,8,0,9,8,6 };
  21. //
  22. //  vector<int> dest;
  23. //  CopyIfNotEqual(values, dest,8);
  24. //
  25. //  const vector<int> expected = { 1,3,3,2,4,0,9,6 };
  26. //  //ASSERT_EQUAL(dest, expected);
  27. //
  28. //}
  29. //
  30. //int main()
  31. //{
  32. //  //TestRunner tr;
  33. //  //RUN_TEST(tr, TestCopyIfNotEqual);
  34. //
  35. //  int value = 4;
  36. //  auto increase = [value](int x) {return value += x; };
  37. //  cout << increase(5) << endl;
  38. //  cout << increase(5) << endl;
  39. //
  40. //
  41. //  return 0;
  42. //}
  43. //
  44. //// Лямбда - функция эквивалентна классу с константным operator()
  45. //// Неявный const в operator() лямбда - функции защищает от случайного изменения захваченных по значению переменных
  46. //
  47. //// Таким образом гарантируется, что вызов лямбды с одними и теми же аргументами вернет одно и то же значение
  48. //
  49. //// Первое преимущество константности в С++ - она защищает от случайного изменения объекты, которые по своему смыслу не должны меняться
  50.  
  51. //class <unnamed>
  52. //{
  53. //  int value;
  54. //
  55. //public:
  56. //  int operator()(int x) const
  57. //  {
  58. //      return value + x;
  59. //  }
  60. //};
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement