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

problem tbb::parallel_pipeline and functor operator () overriding


Hi everyone,

I used in the past tbb 3. In particular, I successfully used parallel_pipeline for image processing purposes. These days I update my tbb version and I have some problem with my old code. My implemetation is very similar to the TextSlice implementation of the tutorial, however the compiler return me an error:

1>E:\Archivos de programa\tbb40_20111130oss_src\include\tbb/pipeline.h(440) : error C3848: expression having type 'const saveImageFilter' would lose some const-volatile qualifiers in order to call 'void saveImageFilter::operator ()(IplImage *)'
1>        E:\Archivos de programa\tbb40_20111130oss_src\include\tbb/pipeline.h(438) : while compiling class template member function 'void *tbb::interface6::internal::concrete_filter<T,U,Body>::operator ()(void *)'

It seems that the operator () of the functor (saveImageFilter) has to be declared as a const method. By doing this this problem can be solved, however in some functor of my code the operator () modify some attribute of it, hence leading me to another error.

This problem it was not present in the version 3 of tbb, I would like to know if can you confirm this changes and difference and I am looking for a possible solution to this problem. Clearly, I can re-write the functors in order to avoid any attribute/parameter modification but it is not the optimal solution

Thank you very much


0 Kudos
0 Replies