본문 바로가기
반응형

💻 programming67

[c++] perfect forwarding (완벽한 전달) Perfect forwarding Perfect Forwarding Definition 완벽한 전달 (Perfect forwarding)은 lvalue 또는 rvalue의 특성을 바꾸지 않고 함수 템플릿에 인자로 전달하는 것을 의미합니다. Lvalues and rvalues 여기서는 굳이 glvalues, xvalues, prvlaue와 같은 자세한 내용에 대해서는 다루지 않습니다. 우리는 rvlaue와 lvalue에 대해서만 이해하고 있으면 됩니다. Rvalue에 해당하는 변수는 다음과 같습니다. 임시 객체 이름 없는 객체 주소가 없는 객체 만약 이중에서 하나라도 해당한다면 해당 변수는 rvalue 입니다. 반대로 lvalue는 이름과 주소를 가지고 있습니다. 아래 코드는 rvalue에 해당하는 예시입.. 2020. 12. 15.
[c++] async en.cppreference.com/w/cpp/thread/async std::async - cppreference.com (1) (since C++11) (until C++17) template std::future , std::decay_t ...>> async( Function&& f, Args&&... args ); (since C++17) (until C++20) template< class Function, c en.cppreference.com async는 일종의 함수 템플릿 (function template)입니다. async를 사용하면 함수 f를 비동기적으로 실행하고 함수 f의 반환 값을 std::future로 반환합니다. 2020.. 2020. 12. 15.
[c++] packaged task 클래스 템플릿인 std::packaged_task은 호출가능한 callable (함수, 람다 표현식, functor) 등을 템플릿의 인자로 받아 future를 반환할 수 있는 통일된 방법을 제공합니다. 이 방법을 통해 비동기적 수행을 할 수도 있습니다. 예제 코드 task_thread를 제외하고 다른 함수는 비동기적으로 수행되지 않는 것을 알 수 있습니다. thread에 std::packaged_task를 전달하기 위해서는 명시적으로 move 해야합니다. #include #include #include #include #include // unique function to avoid disambiguating the std::pow overload set int f(int x, int y) { retur.. 2020. 12. 15.
[c++] future https://en.cppreference.com/w/cpp/thread/future std::future - cppreference.com template class future; (1) (since C++11) template class future ; (2) (since C++11) template class future ; (3) (since C++11) The class template std::future provides a mechanism to access the result of asynchronous oper en.cppreference.com 클래스 템플릿 (class template)인 std::future는 비동기적 수행 (asynchrono.. 2020. 12. 15.
반응형