# PPL Compatibility

Intel® Threading Building Blocks (Intel® TBB) 2.2 introduces features based on joint discussions between the Microsoft Corporation and Intel Corporation. The features establish some degree of compatibility between Intel® TBB and Microsoft Parallel Patterns Library (PPL) development software.

Each feature appears in namespace `tbb`. Each feature can be injected into namespace Concurrency by including the file "tbb/compat/ppl.h". Following is the list of features:

The following table lists the features and provides links to additional information.
Feature | Link
--- | ---
parallel_for(first,last,f) | parallel_for Template Function
parallel_for(first,last,step,f) | parallel_for Template Function
parallel_for_each | parallel_for_each Template Function
parallel_invoke | parallel_invoke Template Function
critical_section | critical_section
reader_writer_lock | reader_writer_lock Class
task_handle | task_handle Template Class
task_group_status | task_group_status Enum
task_group | task_group Class
make_task | make_task Template Function
structured_task_group | structured_task_group Class
is_current_task_group_cancelling | is_current_task_group_canceling Function
improper_lock | Specific Exceptions
invalid_multiple_scheduling | Specific Exceptions
missing_wait | Specific Exceptions

For `parallel_for`, only the variants listed in the table are injected into namespace Concurrency.

### Caution

Because of different environments and evolving specifications, the behavior of the features can differ between the Intel® TBB and PPL implementations.

Parent topic: Appendices