이 함수는 특정 함수 또는 함수 객체와이 객체를 호출하기위한 인수를 취하는 함수 (apply_args()
)를 작성하고 완벽한 전달을 사용하여 호출합니다.args를 함수에 적용하기위한 템플릿 함수
예 :
auto fun = [](std::string a, std::string const& b) { return a += b; };
std::string s("world!");
// s is passing by lvalue ref,
// temporary object by rvalue ref
s = apply_args(fun, std::string("Hello, "), s);
어떻게 그 기능을 구현할 수있다? 당신은 (함수 포인터에 변환) +fun
로 fun
람다를 전달하는 데 동의하면
글쓰기에서 배우기를 원하기 때문에 쓰기를 원하십니까? 아니면 글을 쓰고 싶으니까 쓰기를 원하십니까? 두 번째 경우에는 대신 ['std :: invoke'] (http://en.cppreference.com/w/cpp/utility/functional/invoke)를 사용해야합니다. –
@DanielH -'std :: invoke'는 좋은 선택이지만 C++ 17입니다. 이 질문에 대한 답은 C++ 11 – max66
@DanielH 첫 번째 코드 – user1786089