On Tuesday, 12 July 2016 at 14:48:17 UTC, Ola Fosheim Grøstad wrote:
«
template<typename... Ts> struct make_void { typedef void type;};
template<typename... Ts> using void_t = typename make_void<Ts...>::type;
»

Variadic expansion works on my home code in VS2015. But we shipped Quantum Break on VS2012. I can use variadic template arguments for SFINAE purposes in VS2012, anything more involved is virtually unsupported.

On Tuesday, 12 July 2016 at 15:14:39 UTC, Ola Fosheim Grøstad wrote:
Anyway, if you are going to compare languages, use the latest edition of both languages.

I know this makes sense. But by the same token, this is a practical talk aimed at people using compilers and toolchains 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.

Also of note is that with the binding system we're open sourcing, it's meant to just slot in and start people using D alongside their C++ codebases.

And further of note, this is to show things that are just plain 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.

Reply via email to