feat: implement CPP09 C++20 card
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
#include <iostream>
|
||||
bool resource_open{};
|
||||
class Handle { public: Handle() { resource_open = true; std::cout << "acquire\n"; } ~Handle() { resource_open = false; std::cout << "release\n"; } Handle(const Handle&) = delete; Handle& operator=(const Handle&) = delete; };
|
||||
int main() { { Handle handle; (void)handle; std::cout << "open=" << resource_open << '\n'; } std::cout << "open=" << resource_open << '\n'; }
|
||||
@@ -0,0 +1,4 @@
|
||||
#include <iostream>
|
||||
struct Guard { Guard() { std::cout << "acquire\n"; } ~Guard() { std::cout << "release\n"; } };
|
||||
void work(bool short_path) { Guard guard; if (short_path) { std::cout << "work=short\n"; return; } std::cout << "work=long\n"; }
|
||||
int main() { work(true); std::cout << "after\n"; }
|
||||
@@ -0,0 +1,3 @@
|
||||
#include <iostream>
|
||||
struct Resource { const char* name; explicit Resource(const char* value) : name{value} { std::cout << "acquire=" << name << '\n'; } ~Resource() { std::cout << "release=" << name << '\n'; } };
|
||||
int main() { Resource first{"A"}; { Resource second{"B"}; std::cout << "inside\n"; } }
|
||||
Reference in New Issue
Block a user