Some time ago, I needed a trait is_copy_constructible, which is a special case of is_constructible_from. I remeber to have some thought, that if C++ would support injected friends it might be possible to calculate. But that was really tricky solution and I just posponed it until the compilers support injected friends (due to the upcoming standard). At least MSVC 9 supports it now and I think we could try solving it, may be for the first for copy constructible trait and later generalize it.
AMDGHow do you get an expression to have
a different type depending on whether
a given class has a particular constructor?
In Christ,
Steven Watanabe