Re: [Development] C++11 initializer lists in Qt 5.7

2016-03-22 Thread Thiago Macieira
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

2016-03-22 Thread Marc Mutz
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

2016-03-22 Thread Thiago Macieira
[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