edouarda / brigand

Instant compile time C++ 11 metaprogramming library

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

template_count_bools use raw constexpr

jfalcou opened this issue · comments

Which makes cl.exe 18.00.40629 for x86 not compiling.
Can we have a conditionnal compile here to use old version for MSVC2013 ?

I need to update the macros.

We could just make the MSVC version work with 13. This seems inconsistent with our plan of deprecating msvc13 though. When I have time I would like to go through and separate out the cases where msvc15 support is holding us up and make two versions, one fast and one Microsoft.

I still got a lot of 2013 users and a lot of the new code breaks because of this. I also have issues with range and there, the fix is to call the detail impl :/

I think it's still a bit early to toss 2013. It means missed sales for us.

didn't we had a MSVC2013 bot anyway ?

I believe we have, do you have the right update?

I have cl.exe 18.00.40629

Ok fine by me. Provided we have good macros I can't think of anywhere specific where we cannot support MSVC13, it will probably slow down MSVC15 though because I pretty sure no one wants to make 3 versions ;)

after a bunch of test, the only quirks are :

  • this wild constexpr
  • the fact that, in some context, I can't use the eager range<> I need to go through range_impl<>::type

I will add a macro for MSVC2013 and 2015.

What was our stance on lazy//eager ? Could we have a lazy::range<T,N,M>::type so I don't delve into detail:: ?

By default we are eager and if you want lazy you need to do use the lazy namespace.

See fold: https://github.com/edouarda/brigand/blob/master/brigand/algorithms/fold.hpp

Yeah, but I think range don't support this.

Yes, we didn't do the distinction for range.

I've updated the macros so that you can distinguish between VS2013 and VS2015.

Shall I close this issue?

It's merged so yes