- Has there been any changes to concurrent_lru_cache in the
new TBB 4 Update 3? Can I simply try it out in TBB 4 Update 2?
-- Yes, there were some minor changes to fix warnings on some compilers. However from end-user perspective there should no big difference in sense of container functionality.
- Will operator() block when adding a new cache item while all pre-existing items are already in use
-- the short answer is : no, it will not.
the long one is next: concurrent_lru_cache does not limit number of objects that are in use, instead it throws away extra _unused_ objects. (technically speaking some blocking is inevitable as internally locks are used to keep internal data structutres corects.)
- How do you recommend using it efficiently for large value_type's given that value_functor_type returns the cache item by value? I'm not using C++11 yet so move operators are out of the question.
-- the state of art is to use some kind of smart proxy objects like C++11 shared_ptr