QFactoryLoader: clean up #ifdefs
We require Q_COMPILER_RVALUE_REFS (implicitly used, but not explicitly checked for) and Q_COMPILER_VARIADIC_TEMPLATES since Qt 5.7, so remove the non-variadic version which anyway has zero test coverage. Change-Id: Ie3658ff6ae71a66df9d35100c3d6df41f2326c80 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>bb10
parent
2889ebc903
commit
7b5d14c699
|
|
@ -91,8 +91,6 @@ public:
|
|||
QObject *instance(int index) const;
|
||||
};
|
||||
|
||||
#ifdef Q_COMPILER_VARIADIC_TEMPLATES
|
||||
|
||||
template <class PluginInterface, class FactoryInterface, typename ...Args>
|
||||
PluginInterface *qLoadPlugin(const QFactoryLoader *loader, const QString &key, Args &&...args)
|
||||
{
|
||||
|
|
@ -106,68 +104,6 @@ PluginInterface *qLoadPlugin(const QFactoryLoader *loader, const QString &key, A
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
template <class PluginInterface, class FactoryInterface>
|
||||
PluginInterface *qLoadPlugin(const QFactoryLoader *loader, const QString &key)
|
||||
{
|
||||
const int index = loader->indexOf(key);
|
||||
if (index != -1) {
|
||||
QObject *factoryObject = loader->instance(index);
|
||||
if (FactoryInterface *factory = qobject_cast<FactoryInterface *>(factoryObject))
|
||||
if (PluginInterface *result = factory->create(key))
|
||||
return result;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
template <class PluginInterface, class FactoryInterface, class P1>
|
||||
PluginInterface *qLoadPlugin(const QFactoryLoader *loader,
|
||||
const QString &key,
|
||||
P1 &&p1)
|
||||
{
|
||||
const int index = loader->indexOf(key);
|
||||
if (index != -1) {
|
||||
QObject *factoryObject = loader->instance(index);
|
||||
if (FactoryInterface *factory = qobject_cast<FactoryInterface *>(factoryObject))
|
||||
if (PluginInterface *result = factory->create(key, std::forward<P1>(p1)))
|
||||
return result;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
template <class PluginInterface, class FactoryInterface, class P1, class P2>
|
||||
PluginInterface *qLoadPlugin(const QFactoryLoader *loader,
|
||||
const QString &key,
|
||||
P1 &&p1, P2 &&p2)
|
||||
{
|
||||
const int index = loader->indexOf(key);
|
||||
if (index != -1) {
|
||||
QObject *factoryObject = loader->instance(index);
|
||||
if (FactoryInterface *factory = qobject_cast<FactoryInterface *>(factoryObject))
|
||||
if (PluginInterface *result = factory->create(key, std::forward<P1>(p1), std::forward<P2>(p2)))
|
||||
return result;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
template <class PluginInterface, class FactoryInterface, class P1, class P2, class P3>
|
||||
PluginInterface *qLoadPlugin(const QFactoryLoader *loader,
|
||||
const QString &key,
|
||||
P1 &&p1, P2 &&p2, P3 &&p3)
|
||||
{
|
||||
const int index = loader->indexOf(key);
|
||||
if (index != -1) {
|
||||
QObject *factoryObject = loader->instance(index);
|
||||
if (FactoryInterface *factory = qobject_cast<FactoryInterface *>(factoryObject))
|
||||
if (PluginInterface *result = factory->create(key, std::forward<P1>(p1), std::forward<P2>(p2), std::forward<P3>(p3)))
|
||||
return result;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
template <class PluginInterface, class FactoryInterface, typename Arg>
|
||||
Q_DECL_DEPRECATED PluginInterface *qLoadPlugin1(const QFactoryLoader *loader, const QString &key, Arg &&arg)
|
||||
{ return qLoadPlugin<PluginInterface, FactoryInterface>(loader, key, std::forward<Arg>(arg)); }
|
||||
|
|
|
|||
Loading…
Reference in New Issue