<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Dec 20, 2016, at 2:30 AM, Richard Smith <<a href="mailto:richard@metafoo.co.uk" class="">richard@metafoo.co.uk</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div class="gmail_extra"><div class="gmail_quote">On 19 December 2016 at 14:48, John Spicer <span dir="ltr" class=""><<a href="mailto:jhs@edg.com" target="_blank" class="">jhs@edg.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><span class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Dec 19, 2016, at 5:27 PM, Richard Smith <<a href="mailto:richard@metafoo.co.uk" target="_blank" class="">richard@metafoo.co.uk</a>> wrote:</div><br class="m_-5306618435199841320Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div class=""><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0195r2.html" target="_blank" class="">http://www.open-std.org/jtc1/<wbr class="">sc22/wg21/docs/papers/2016/<wbr class="">p0195r2.html</a> suggests a feature test macro of __cpp_variadic_using; the value would presumably be 201611. Does that seem OK to everyone?<br class=""></div></div><br class=""></div></blockquote><br class=""></div></span><div class="">I think it is okay.</div><div class=""><br class=""></div><div class="">I think it is slightly odd as the change is to allow multiple names in a using-declaration, but the expected use case is for variadics.</div><div class=""><br class=""></div><div class="">I’d also be okay with something like __cpp_multi_using.</div><div class=""><br class=""></div><div class="">__cpp_variadic_using had more support when it was discussed in core, FWIW.</div></div></blockquote><div class=""><br class=""></div><div class="">I don't see any reason you'd want to feature test for the multiple-names-in-one-using-declaration part of the feature -- just don't use them if you want to be compatible with old language modes. But the variadic part does seem like something people would want to feature-test for. I can imagine someone wanting to write:</div><div class=""><br class=""></div><div class="">#if __cpp_variadic_using >= 201611</div><div class="">template<typename ...T> struct Callable : T... {</div><div class=""> using T::operator() ...;</div><div class="">};</div><div class="">#else</div><div class="">template<typename ...T> struct Callable;</div><div class="">template<typename T, typename ...U> struct Callable<T, U...> : T, Callable<U...> {</div><div class=""> using T::operator();</div><div class=""> using Callable<U...>::operator();</div><div class="">};</div><div class="">template<typename T> struct Callable<T> : T {</div><div class=""> using T::operator();</div><div class="">};</div><div class="">template<> struct Callable<> {};</div><div class="">#endif<br class=""></div></div></div></div>
</div></blockquote></div><br class=""><div class="">I agree with that, and that is probably why core leaned in the direction of the name they did.</div><div class=""><br class=""></div><div class="">I just think of the feature as allowing multiple names in a using, the most useful case for which is variadics.</div><div class=""><br class=""></div><div class="">I’m fine with the variadic name.</div><div class=""><br class=""></div><div class="">John.</div></body></html>