가 구축)합니다 (표준 : : for_each를 내 최초의 성공적인 사용에서 조각의 커플 :C++ std :: for_each() 함수 매개 변수 유형이란 무엇입니까? 여기
struct add_to_memory {
void operator()(const boost::tuple<const string&, const string&> &t) {
m_map.insert(make_pair(t.get<0>(),t.get<1>()));
}
add_to_memory(MemoryBank &m) : m_map(m) {};
private:
MemoryBank &m_map;
};
void
memorize(Block &block) {
block.get_record_types(record_type_set);
BOOST_FOREACH(D_RecordType_Set::value_type rec_type, record_type_set) {
MD_Zip_Range zipper = block.make_field_value_zip_range(rec_type);
std::for_each(zipper.first, zipper.second, add_to_memory(memory_bank));
}
}
을 지금 추가 매개 변수를 받아들이는 함수로 변경 "기억"할 - 기능 또는 functor 또는 뭐든간에 add_to_memory()
입니다. 그러나 나는 서명에서 어떤 유형을 사용할 지 알 수 없다. 내가 사용
void scan_block_and_apply_function(Block&, ..?..);
이 : 그것은 내가 C++ 11 없어 말을하는 것이 안전합니다, 그래서 g ++ 4.4 읽기는은 "붙어"]. 서명은 무엇이되어야합니까? 그리고 scan_block_and_apply_function()을 어떻게 호출해야합니까?
'F (memory_bank)'? '펑터 '라는 뜻인가요? – Chap
@Chap : Correct ... 입력하기 전에 깜빡했다. :) –
나는 이것을 원래 요청 했어야했는데, memorize()를 호출하는 방법을 보여줄 수 있습니까? – Chap