Re: [Development] C++11 initializer lists in Qt 5.7
On terça-feira, 22 de março de 2016 12:00:35 GMT Marc Mutz wrote: > The same old problem: > > std::_1::initializer_list vs. std:.initializer_list ? Or is > std::initializer_list one of those types (like std::exception) compatible > between libc++ and libstdc++? Good question. The layout of std::initializer_list is mandated by the compiler ABI. But the actual type name does not necessarily have to be... Checking libc++ sources... 8<- namespace std // purposefully not versioned { #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS template class _LIBCPP_TYPE_VIS_ONLY initializer_list 8<- There you go, the name is the same too (St16initializer_list). Very likely, this is required by the compilers themselves. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] C++11 initializer lists in Qt 5.7
On Tuesday 22 March 2016 11:33:57 Thiago Macieira wrote: > [This is why I asked for an analysis of the features now possible, but it > hasn't happened. So we're doing it piecemeal] > > Sean wrote: > > I don't have ready access to all the other compilers and versions we > > support but I think this would allow potential use of: > > > > * template aliases > > * raw string literals > > * delegating ctors > > I'd written: > > This buys us: > > > > - delegating constructors > > - "explicit operator" member funcvtions > > - nsdmi > > - initializer_list (not uniform initialisation!) > > - raw strings > > - template alias (using ... = ...) > > - variadic templates > > In specific for initializer_lists, the only compilers now with problems is > M MSVC 2013 RTM and SP1. SP2 contains a fix that allows us to enable the > functionality. > > But since MSVC does not keep binary compatibility between versions, we > should be allowed to use initializer_lists in our ABI. > > Any disagreements? > > cf https://codereview.qt-project.org/107373 The same old problem: std::_1::initializer_list vs. std:.initializer_list ? Or is std::initializer_list one of those types (like std::exception) compatible between libc++ and libstdc++? Thanks, Marc -- Marc Mutz | Senior Software Engineer KDAB (Deutschland) GmbH & Co.KG, a KDAB Group Company Tel: +49-30-521325470 KDAB - The Qt Experts ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
[Development] C++11 initializer lists in Qt 5.7
[This is why I asked for an analysis of the features now possible, but it hasn't happened. So we're doing it piecemeal] Sean wrote: > I don't have ready access to all the other compilers and versions we support > but I think this would allow potential use of: > > * template aliases > * raw string literals > * delegating ctors I'd written: > This buys us: > > - delegating constructors > - "explicit operator" member funcvtions > - nsdmi > - initializer_list (not uniform initialisation!) > - raw strings > - template alias (using ... = ...) > - variadic templates In specific for initializer_lists, the only compilers now with problems is M MSVC 2013 RTM and SP1. SP2 contains a fix that allows us to enable the functionality. But since MSVC does not keep binary compatibility between versions, we should be allowed to use initializer_lists in our ABI. Any disagreements? cf https://codereview.qt-project.org/107373 -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development