1 Sep
2015
1 Sep
'15
5:08 p.m.
AMDG On 08/31/2015 04:53 AM, Yuan Yao wrote:
I try to use type erasure on the free function foo. However, VS 2015 failed to compile the following code, which is OK with GCC and CLang.
<snip> Source.cpp(7): note: could be 'std::type_index boost::type_erasure::injectHasGetField
>::foo(eval_if_c<0,boost::type_erasure::detail::maybe_const_this_param ,boost::type_erasure::as_param >::type)' [found using argument-dependent lookup]
This kind of looks like a variadic template bug. The condition of the eval_if_c is supposed to evaluate to true. The whole point of this eval_if_c business is to prevent the ambiguity that you're seeing. In Christ, Steven Watanabe