Intel® oneAPI Threading Building Blocks
Ask questions and share information about adding parallelism to your applications when using this threading library.

including <tbb/compat/condition_varialbe> using gcc 4.7.2 with -std=c++0x

Seunghwa_Kang
Beginner
496 Views

Hello,

I think the conditional compilation code in tbb_config.h to set TBB_IMPLEMENT_CPP0X needs to be reviewed.

I tried to compile using gcc 4.7.2 with the -std=c++0x flag and got the following error.

error: ‘condition_variable’ in namespace ‘std’ does not name a type

Setting TBB_IMPLEMENT_CPP0X to 1 fixed the problem.

Thanks,

0 Kudos
4 Replies
Anton_P_Intel
Employee
496 Views

 

 

 

0 Kudos
Vladimir_P_1234567890
496 Views

hello, you need to include compiler's <condition_variable>.

--Vladimir

0 Kudos
dulantha_f
Beginner
496 Views

So in other words if the C++11 standard is defined all TBB code gets disabled and it's the programmer's responsibility to include the header files?

One could argue that logic should go into TBB so the programmer always uses the TBB header file and TBB decides when to use what.

Pardon my late question, I just ran into the same problem this week.

0 Kudos
Vladimir_P_1234567890
496 Views

hello, you can to define TBB_IMPLEMENT_CPP0X explicitly to force tbb to use C++0x compatibility classes in C++11 mode of compiler otherwise it is disabled to avoid compatibility problems.

you can submit a patch with your vision of compatibility classes behavior via our contribution form https://www.threadingbuildingblocks.org/submit-contribution, then we can review it.

--Vladimir

0 Kudos
Reply