We are heavily using template metaprogramming for performance, and it seems STM tm_callable is having a viral affect on our codebase.
What happens is that we typically want tm_callable member functions high up in our software architecture. From there the tm_callable's must trickle down the dependency tree until we hit STL functions. We can't wrap those in tm_callable, right?
It's a bit like declaring something const. Once you introduce a const member function, it impacts the call chain and you have to make most everything const.