
Marcel Raad <raad <at> teamviewer.com> writes:
Ben Pope <benpope81 <at> gmail.com> writes:
multi_index:test_key_extractors:msvc-14.0
This I strongly suspect is a compiler bug. I've tried reducing the problem to a simple test case but it works in webcompiler.cloudapp.net with version 19.00.22620: #include <type_traits> template<bool Cond,typename T1,typename T2> struct if_{using type=T1;}; template<typename T1,typename T2> struct if_<false,T1,T2>{using type=T2;}; template<class Class,typename Type,Type Class::*PtrToMember> struct const_member_base{using result_type=Type;}; template<class Class,typename Type,Type Class::*PtrToMember> struct non_const_member_base{using result_type=Type;}; template<class Class,typename Type,Type Class::*PtrToMember> struct member: if_< std::is_const<Type>::value, const_member_base<Class,Type,PtrToMember>, non_const_member_base<Class,Type,PtrToMember>
::type { };
struct X { int x; }; int main() { member<X,const int,&X::x> t; } Maybe someone can try with version 19.00.22609, which is what teeks99-08f-win2012R2-64on64 is running? If it fails, then we have a compiler bug fixed on mainline. Thank you, Joaquín M López Muñoz Telefónica