[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]



I am the maintainer of Wt [1], a C++ web development library (think of Qt or Gtk+ for the web) and web server.

My upstream [2] sent me a mail asking about mixing C++03 and C++11. My understanding is it is not possible for a variety of reasons, unless all players take great care (see [3], for instance). 

The specific case upstream asked about is Boost.Signals2, which provides a different and ABI-incompatible implementation [4] depending on whether Boost was compiled as C++03 or C++11. I expect users and Wt to use more and more C++11, to the point where Wt may not even be compilable as C++03. Given that Wt depends on Boost, I can foresee a problem:

- Application may be C++11 or C++03, depending on what the user is doing
- Wt would be C++11-only
- Boost would be compiled as C++03 in Debian
- Wt (C++11) would depend on Boost (C++03), which but this mix is broken

I'm talking about Wt + Boost in this e-mail but this will arise as other combinations for other packagers: log4cpp, Xerces, SOCI, ACE (which I co-maintain), Gtkmm, ZeroC ICE, POCO, etc

I have googled but so far I have found no clear conclusion about this for Debian. What are we going to do with C++11? Are we goint to provide C++03 and C++11 using multiarch (is that even possible?) ? Everything C++11? Fingers crossed?

E. g Microsoft took a very pragmatic decision: C++11 is enabled by default and it is not possible to disable it.

[1] Wt - http://www.webtoolkit.eu
[2] EmWeb - http://www.emweb.be
[3] Thiago Macieira: C++11 use in Qt5: Challanges and Solutions - http://www.youtube.com/watch?v=olSSGA_nD1Q
[4] http://lists.boost.org/Archives/boost/2013/05/203762.php

Pau Garcia i Quiles
(Due to my workload, I may need 10 days to answer)

Reply to: