튜플에서 가변 템플릿 함수 인수 확장
가변 템플릿 매개변수가 있는 템플릿 함수를 고려해보세요.
template<typename Tret, typename... T> Tret func(const T&... t);
어떻게 값의 튜플을 사용하여 func()를 호출할 수 있습니까? 인수?
최신 C 솔루션(C 17 이상)
C 17에서 std::apply() 함수는 우아한 솔루션을 제공합니다.
std::apply(the_function, the_tuple);
클랭 3.9 해결 방법
Clang 3.9를 사용하는 경우 std::experimental::apply 함수를 대신 사용할 수 있습니다.
템플릿 함수 처리
the_function이 템플릿화된 경우 다음을 사용할 수 있습니다. 해결 방법:
#include <tuple> template <typename T, typename U> void my_func(T &&t, U &&u) {} int main() { std::tuple<int, float&> my_tuple; std::apply([](auto &&... args) { my_func(args...); }, my_tuple); return 0; }
일반화된 오버로드 세트 호출
오버로드 세트 및 함수 템플릿을 처리할 수 있는 보다 다양한 솔루션을 보려면 https:/에서 포괄적인 설명을 참조하세요. /blog.tartanllama.xyz/passing-overload-sets/.
위 내용은 C의 Variadic 템플릿 함수에 값 튜플을 인수로 전달하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!