좋은 프로그래밍 방식으로 작업이 완료되면 (실패한 경우) 콜백 매개 변수를 추가하고 있습니까? 예 :작업 완료 콜백 프로그래밍 연습
template <typename F>
void load(::std::string const& path, F&& f)
{
// after a long load
::std::invoke(f, path);
}
여기에서 f
은 다른 스레드의 컨텍스트에서 호출 될 수 있습니다. 내 질문은 프로그램에서 단발 신호/슬롯 쌍을 갖는 것이 가치가 있는지의 여부를 숙고함으로써 나온 것입니다. 즉, 한 번만 호출되는 슬롯입니다. 그렇지 않으면 지루한 것으로 간주 될 수있는 신호를 연결 한 다음 연결해야 할 수 있습니다. 이유는 bool 값과 같은 반환 값을 사용하면 결과를 기다릴 필요가 있지만 콜백을 사용하면 필요하지 않습니다.
구문이 이상하게 보입니다. F가 뭐라고되어 있니? 왜 안'std :: function'? –
':: std :: invoke'와 같이 호출 할 수있는 객체는 모두 – user1095108
입니다. 관찰자 패턴을 사용하면 유지 보수성이 향상 될 것입니다. – adrianN