Gennadiy, do you really want to go the hard road and use symbols inject enable_if, etc. in namespaces in your code. It just seems like playing with fire since this symbol has such a clear meaning in C++11. It's your decision, but it would scare me enough to create my_enable_if, etc.
Standard uses tons of names - list, vector, exception for example. This does not prevent boost to use the same names in different namespaces. And it shouldn't.
Well, you sound like a hard man, and I can respect that. The heat would be too much for me to stand, but I get your point. You know, if there is a compiler issue and if we can't get it properly resolved, Boost.Test will probably get some serious heat from the community as soon as more and more people use the names in question. I am working on isolating the potential compiler issue in a localized test case, and will report back as soon as I have anything reproducible and terse.
But again, it seems as though your code is right and MSVC is wrong. Just a tough waiting game on a compiler issue like that.
I hope we can find a workaround. Compiler's behavior is very strange, but there should be some triggers for it. Maybe we can avoid them. Gennadiy
Let's see what John thinks of decorating the names in multiprecision. He did not sound too enthused in our preliminary discussions. Sincerely, Chris.