ProgrammingLang/c++

[C++개발자되기]22. golang의 defer 만들기

jinkwon.kim 2021. 7. 10. 18:02
728x90
반응형

개요

C++11에서동작 하는 golang의 defer 만들기

 

원리

share_ptr가 scope 끝나면 사라진다는 것을 활용.

Code

#include <memory>
#include <iostream>
#include <functional>

using namespace std;
using defer = shared_ptr<void>;    

int main() {
    defer _(nullptr, bind([]{ cout << ", World!"; }));
    cout << "Hello";
}


Or, without bind:

#include <memory>
#include <iostream>

using namespace std;
using defer = shared_ptr<void>;    

int main() {
    defer _(nullptr, [](...){ cout << ", World!"; });
    cout << "Hello";
}
728x90
반응형