함수 포인터를 사용하지 않고 다른 함수에 인수로 동일한 입력 인수/반환 유형의 함수를 전달하는 올바른 방법은 무엇입니까? 호출 할 때 전달 된 함수 인수를 인라인 된 싶습니다? 글쎄, 나는 단지 포인터 간접 지정을 원하지 않는다.함수 포인터/인라인없이 인수로 C++ 함수 전달?
Pass a function as an explicit template parameter
하지만 함수 포인터를 사용하고있는 것으로 보인다
나는이 발견했다.편집 : 각 함수 인수에 대한 동작을 저장하기 위해 구조체를 작성하지 않아도됩니다.
struct X {
inline void operator()() // inline function
{
}
};
template<typename F> void caller2(F functor) {
functor(); // inline call
}
: 당신은 인라인 함수의 제어가있는 경우
void inlined_function() {}; // function you want to pass
template<typename F> void caller1() {
inlined_function(); // not passed through pointer, call inline
}
이 펑터로 구현 : 당신은 컴파일 시간에 전문화를 알고 있다면
이봐, 당신의 편집 아이디어를 좋아하고이 경우, (더 좋은)
inlined_function
를 호출하거나X
유사한 펑, 람다 물품. 그래서 inlined_functor()는 inlined_functor2()를 가질 수 있으며, 이들은 여전히 동일한 클래스에서 일반적인 메소드가 될 것입니다. – user997112@ user997112 - 예. 서로 호출하는 인라인 된 함수는 인라인 작업을합니다. – utnapistim