C의 콜백과 다양한 용도
C에서 콜백은 클래스나 함수에서 허용하는 콜백(나중에 논의)입니다. 제공된 콜백을 기반으로 현재 로직을 맞춤설정하는 데 사용됩니다.
이유 콜백 사용:
C에서 호출 가능 항목이란 무엇입니까? ?
콜백 작성 및 호출:
함수 포인터:
멤버 함수에 대한 포인터:
std::function 객체:
사용 예시 std::function:
일반화 코드:
template<class R, class T> void stdf_transform_every_int_templ(int *v, unsigned const n, std::function<R(T)> fp) { for (unsigned i = 0; i < n; ++i) { v[i] = fp(v[i]); } }
템플릿 콜백:
template<class F> void transform_every_int_templ(int *v, unsigned const n, F f) { for (unsigned i = 0; i < n; ++i) { v[i] = f(v[i]); } }
유형 이름 구현:
template <class T> std::string type_name() { typedef typename std::remove_reference<T>::type TR; std::unique_ptr<char, void(*)(void*)> own (abi::__cxa_demangle(typeid(TR).name(), nullptr, nullptr, nullptr), std::free); std::string r = own != nullptr?own.get():typeid(TR).name(); if (std::is_const<TR>::value) r += " const"; if (std::is_volatile<TR>::value) r += " volatile"; if (std::is_lvalue_reference<T>::value) r += " &&"; else if (std::is_rvalue_reference<T>::value) r += " &&"; return r; }
위 내용은 C에서 콜백은 어떻게 작동하며 다양한 용도는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!