Dear all,
 
Browsing through source files of boost, I see that some libraries reimplement common idioms found in other libraries. For example the tuple library reimplements its own compile time if and it's own typelist.
 
I guess it would be better if high level boost libraries(e.g. regex, threads, to some extend also the tuples) would use the low level boost libraries (e.g. preprocessor, type_traits, mpl). Besides bugfixes and platform/compiler workarounds, it has also a documentary advantage. If you are familiar with mpl for example, one knows how to interpret the construct with if_. Also one can better interact with libraries if they are using the same base constructs. There almost no disadvantages, because all the low level boost libraries are template based.
 
But probably this is a matter of time, because at first look at the variant library, I see that it uses the mpl. And people are talking about the fusion library for the tuples.
 
Are there boost developers who can comment on this?
 
Wkr,
me.