아래 코드는 사용자 정의 호출 가능 개체 (이 경우 함수 포인터)에 매개 변수 팩을 전달합니다. 호출 가능 함수의 반환 값을 반환하는 C++ 11의 방법이 있습니까? 좀 더 구체적으로, raise 문에 return 문을 추가 할 수 있도록 raise()의 반환 형식을 추론 할 수 있기를 원합니다. 반환 형식 템플릿 매개 변수를 추가 할 수 있지만 템플릿 매개 변수 Func에서 반환 형식을 이미 알고 있어야합니까?일반 호출 가능 개체의 반환 값 전달
size_t example(const std::string& str)
{
return str.size();
}
template <class Func>
class signal
{
public:
signal()
{
}
~signal()
{
}
void attach(Func handler)
{
_handler = handler;
}
template <typename... T>
void raise(T&&... args)
{
auto val = _handler(std::forward<T>(args)...);
// How do I return this?
}
private:
Func _handler;
};
typedef size_t(*fcn)(const std::string&);
int main()
{
signal<fcn> sig;
sig.attach(&example);
sig.raise("hello!");
return 0;
}
C++ 14 기능을 사용할 수 있습니까? – anderas