[Development] We are planning to upgrade qdoc to use clang for parsing C++

Olivier Goffart olivier at woboq.com
Thu Feb 25 18:36:16 CET 2016


Am Donnerstag, 25. Februar 2016, 09:02:11 CET schrieb Thiago Macieira:
> On quinta-feira, 25 de fevereiro de 2016 17:33:52 PST Cristian Adam wrote:
> > This might be a burden for some of the Qt developers (Windows ones).
> > 
> > But all the Qt users get a modern / flexible moc, see this thread:
> > https://www.reddit.com/r/cpp/comments/470ama/qt_moc_myths_debunked/d09c90e
> 
> I don't think we need a more flexible moc. What do we want to do that we
> can't do with the current one?
> 
> Don't say "template QObjects". That has other reasons for being a bad idea,
> currently.
> 
> Is it Olivier's maintenance burden?

The parser need to be adapted if we want to support trailing type for signals/
slots/Q_INVOKABLE; or C++11 attributes; decltype as argument type for 
invokable; or fancy default arguments. There might be other things.

As long as the QObject system does string comparison for return value, I think 
there is no way to support automatic return type deduction in invokables 
without a fully complient C++ parser.
Maybe if we had a QMetaType system that did not care about strings that would 
work better. But we need to do some other way to query the argument types and 
return type than putting it in the QMetaObject's array,  because 
qMetaTypeId<XXX>() is not constexpr.

-- 
Olivier 

Woboq - Qt services and support - https://woboq.com - https://code.woboq.org



More information about the Development mailing list