e120db9bb2d44681ee48917763a852bc245abab5
dblume Add a lifetime object to te...

dblume authored 5 months ago

1) #include "lifetime.h"
2) #include <cstdio>
3) #include <array>
dblume Add SeparateDefinitionBlock...

dblume authored 1 month ago

4) 
dblume Add a lifetime object to te...

dblume authored 5 months ago

5) // From C++ Weekly with Jason Turner
6) // https://www.youtube.com/watch?v=6SaUwqw4ueE
7) //
8) // Test with:
9) // ls -1 lifetime* | entr sh -c 'g++ -Wall -std=c++17 lifetime.cpp && valgrind -q --leak-check=yes --show-leak-kinds=all ./a.out'
10) 
11) Lifetime::Lifetime()
12) {
dblume Add SeparateDefinitionBlock...

dblume authored 1 month ago

13)     std::puts("Lifetime() // default ctor");
dblume Add a lifetime object to te...

dblume authored 5 months ago

14) }
15) 
16) Lifetime::~Lifetime()
17) {
dblume Add SeparateDefinitionBlock...

dblume authored 1 month ago

18)     std::puts("~Lifetime() // destructor");
dblume Add a lifetime object to te...

dblume authored 5 months ago

19) }
20) 
21) Lifetime::Lifetime(const Lifetime &)
22) {
dblume Add SeparateDefinitionBlock...

dblume authored 1 month ago

23)     std::puts("Lifetime(const Lifetime &) // copy ctor");
dblume Add a lifetime object to te...

dblume authored 5 months ago

24) }
25) 
26) Lifetime::Lifetime(Lifetime &&)
27) {
dblume Add SeparateDefinitionBlock...

dblume authored 1 month ago

28)     std::puts("Lifetime(Lifetime &&) // move ctor");
dblume Add a lifetime object to te...

dblume authored 5 months ago

29) }
30) 
31) Lifetime &Lifetime::operator=(Lifetime &&)
32) {
dblume Add SeparateDefinitionBlock...

dblume authored 1 month ago

33)     std::puts("operator=(const Lifetime &&) // move assign");
dblume Add a lifetime object to te...

dblume authored 5 months ago

34)     return *this;
35) }
36) 
37) Lifetime &Lifetime::operator=(const Lifetime &)
38) {
dblume Add SeparateDefinitionBlock...

dblume authored 1 month ago

39)     std::puts("operator=(const Lifetime &) // copy assign");