release-2-3-0

# Release 2.3.0 (2020/02/27)

Download
release-2-3-0_1release-2-3-0_download
New Features
release-2-3-0_1release-2-3-0_new_features
Bug Fixes
release-2-3-0_1release-2-3-0_bug_fixes
Deprecated Items
release-2-3-0_1release-2-3-0_deprecated_items

Cpp-Taskflow 2.3.0 is the 4th release in the 2.x line! This release includes several new changes such as conditional tasking, modified scheduling flows, benchmarks, documentation, and so forth.

# Download

Cpp-Taskflow 2.3.0 can be downloaded from here.

# New Features

- Added full C++14/17/20 support

- Added a thread-safe object pool motivated by Hoard memory allocator

- Added condition tasks in support for conditional tasking (see Conditional Tasking)

- Added tf::Task::has_work to detect if a task is a placeholder

- Added tf::Task::for_each_successor, tf::Task::for_each_dependent, and tf::Taskflow::for_each_task, tf::TaskView::for_each_successor, tf::TaskView::for_each_dependent to support graph traversal

- Modified the task scheduling flow

- Modified tf::Taskflow::parallel_for to take a chunk size instead of a partition number

- Modified tf::Executor to be thread-safe (see Executor)

- Enhanced the performance of work stealing

- Enhanced unit tests

# Bug Fixes

- Fixed the stack overflow problem in zero worker execution

- Fixed the missing comma in output execution timelines from an executor

- Fixed the bug in empty taskflow

# Deprecated Items

- Removed zero worker thread support in execution

- Removed gather method in task handle

- Removed std::vector and std::initializer_list support in task's preceed/succeed methods

- Removed taskflow::silent_emplace method