On Tuesday 30 June 2015 09:37:59 Ansel Sermersheim wrote: > Our goal with CopperSpice is to use modern C++ internally to leverage > everything we can from the language. We want developers of CopperSpice > applications to have the full power of C++ available in all parts of > their code. For example, with moc removed we support template classes > that inherit from QObject. We support passing method pointers as signal > arguments.
You need to use -fvisibility-inlines-hidden and retry. I don't think your solution works under those circumstances. > We are going to fully support exceptions, and make > exception safety guarantees where possible. Unless you're going to rewrite the entire GUI, widgets, networking and other libraries from scratch, you're not going to get exception-safety. > We are working on > redesigning the QObject lifetime model so that it works smoothly with > C++11 smart pointers. I researched that 4 or 5 years ago and I found two problems: First, you must either choose to use smart pointers everywhere or not at all. You can't pick and choose, which is what caused most of the problems. Second, and most importantly, all the QWidget-derived classes share state with their parent widgets. You MUST delete the children when the parent is getting deleted, which is incompatible with smart pointers. Like I said above for exceptions, you'll need to redesign the entire stack to get support for smart pointers here. > These are some of the limitations that frustrated us when using Qt in an > existing codebase. You're making trade-offs. One of them, given your presentation, is that there's no current version of MSVC that will work with your codebase. Another is that you're replacing a code generator by a lot of boilerplate macros. And, critically, like I mentioned above, is that I don't think your solution works with -fvisibility-inlines-hidden, due to taking and comparing addresses of inline functions. -- 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