diff --git a/listings/listing_8.3.cpp b/listings/listing_8.3.cpp index 86b8526..e5af8d5 100644 --- a/listings/listing_8.3.cpp +++ b/listings/listing_8.3.cpp @@ -2,6 +2,8 @@ #include #include #include +#include +#include template struct accumulate_block { @@ -40,12 +42,12 @@ T parallel_accumulate(Iterator first,Iterator last,T init) Iterator block_end=block_start; std::advance(block_end,block_size); std::packaged_task task( - accumulate_block()); + (accumulate_block())); futures[i]=task.get_future(); threads[i]=std::thread(std::move(task),block_start,block_end); block_start=block_end; } - T last_result=accumulate_block(block_start,last); + T last_result=accumulate_block()(block_start,last); std::for_each(threads.begin(),threads.end(), std::mem_fn(&std::thread::join));