On Tuesday, 12 July 2016 at 15:50:59 UTC, Ethan Watson wrote:
that aren't necessarily up to date. What I'd rather do is have
further examples visible online for C++17 standards to compare
against. Either way, given Microsoft's rate, the industry will
be able to use C++17 some time in 2021.
Well, just make sure you say you are aware of it ;-), or else
you'll get the same response that you would get from D-users if
you compared C++17 to D1...
I can get this to work:
template<class, class = void_t<>> struct has_equality :
std::false_type { };
template<class T >
struct has_equality<T, void_t<decltype(
std::declval<T&>() == std::declval<T&>()
)>> : std::true_type { };
and call it with:
if( has_equality<int>() ) ...
with C++14 you also can get rid of the parens by binding ::value
so you get
if( has_equality<int> ) ...
horrible to do in C++. SFINAE whackiness leads me in to talking
about the is operator in D, which leads in to talking about the
binding system... It's all about how it directly relates to
usage, not to what someone can do in six years time.
I am not sure if I understand the argument. Wouldn't MS have kept
D at D1 if the core issue is their backend? Why is it easier to
user D than clang/gcc?