Hello everyone,

just wanted to let you know, that we have a small workaround here in the meantime.

The problem is that the CLR linker does not detect that these instantiations are identical. To avoid this problem we replaced the "inline" instantiation with an explicit instantiation in exactly one cpp file (or object file).

Best regards,
Franz Hirschbeck

--
Franz Hirschbeck, Dipl.-Inf.
Software Department

CT Imaging GmbH                                 Tel.: +49-9131-97310-21
Henkestr. 91                                    Fax.: +49-9131-97310-10
91052 Erlangen                                  http://www.ct-imaging.de

Amtsgericht Fürth/Bay. HRB 11567
Ust. IdNr.: DE261272554
Geschäftsführer: Prof. Dr. Willi Kalender; Dipl. Kfm. Georg Ruile
diff -Naur 
qt-everywhere-opensource-src-5.0.1/qtbase/src/corelib/tools/qstringlist.cpp 
qt-everywhere-opensource-src-5.0.1_patched/qtbase/src/corelib/tools/qstringlist.cpp
--- qt-everywhere-opensource-src-5.0.1/qtbase/src/corelib/tools/qstringlist.cpp 
Tue Jan 29 19:03:01 2013
+++ 
qt-everywhere-opensource-src-5.0.1_patched/qtbase/src/corelib/tools/qstringlist.cpp
 Tue Feb  5 08:52:05 2013
@@ -177,6 +177,8 @@
     Constructs an empty string list.
 */
 
+QStringList::QStringList() { }
+
 /*!
     \fn QStringList::QStringList(const QString &str)
 
@@ -188,6 +190,8 @@
     \sa append()
 */
 
+QStringList::QStringList(const QString &i) { append(i); }
+
 /*!
     \fn QStringList::QStringList(const QStringList &other)
 
@@ -202,6 +206,8 @@
     \sa operator=()
 */
 
+QStringList::QStringList(const QStringList &l) : QList<QString>(l) { }
+
 /*!
     \fn QStringList::QStringList(const QList<QString> &other)
 
@@ -215,6 +221,8 @@
     \sa operator=()
 */
 
+QStringList::QStringList(const QList<QString> &l) : QList<QString>(l) { }
+
 /*!
     \fn void QStringList::sort(Qt::CaseSensitivity cs)
 
@@ -473,6 +481,12 @@
 
     \sa append()
 */
+QStringList QStringList::operator+(const QStringList &other) const
+{ 
+       QStringList n = *this; 
+       n += other; 
+       return n; 
+}
 
 /*!
     \fn QStringList &QStringList::operator<<(const QString &str)
@@ -482,6 +496,11 @@
 
     \sa append()
 */
+QStringList &QStringList::operator<<(const QString &str)
+{ 
+       append(str); 
+       return *this; 
+}
 
 /*!
     \fn QStringList &QStringList::operator<<(const QStringList &other)
@@ -491,6 +510,12 @@
     Appends the \a other string list to the string list and returns a 
reference to
     the latter string list.
 */
+
+QStringList &QStringList::operator<<(const QStringList &l)
+{ 
+       *this += l; 
+       return *this; 
+}
 
 #ifndef QT_NO_DATASTREAM
 /*!
diff -Naur 
qt-everywhere-opensource-src-5.0.1/qtbase/src/corelib/tools/qstringlist.h 
qt-everywhere-opensource-src-5.0.1_patched/qtbase/src/corelib/tools/qstringlist.h
--- qt-everywhere-opensource-src-5.0.1/qtbase/src/corelib/tools/qstringlist.h   
Tue Jan 29 19:03:01 2013
+++ 
qt-everywhere-opensource-src-5.0.1_patched/qtbase/src/corelib/tools/qstringlist.h
   Tue Feb  5 08:53:54 2013
@@ -63,10 +63,10 @@
 class QStringList : public QList<QString>
 {
 public:
-    inline QStringList() { }
-    inline explicit QStringList(const QString &i) { append(i); }
-    inline QStringList(const QStringList &l) : QList<QString>(l) { }
-    inline QStringList(const QList<QString> &l) : QList<QString>(l) { }
+    Q_CORE_EXPORT QStringList();
+    Q_CORE_EXPORT explicit QStringList(const QString &i);
+    Q_CORE_EXPORT QStringList(const QStringList &l);
+    Q_CORE_EXPORT QStringList(const QList<QString> &l);
 #ifdef Q_COMPILER_INITIALIZER_LISTS
     inline QStringList(std::initializer_list<QString> args) : 
QList<QString>(args) { }
 #endif
@@ -82,12 +82,9 @@
 
     inline QStringList &replaceInStrings(const QString &before, const QString 
&after, Qt::CaseSensitivity cs = Qt::CaseSensitive);
 
-    inline QStringList operator+(const QStringList &other) const
-    { QStringList n = *this; n += other; return n; }
-    inline QStringList &operator<<(const QString &str)
-    { append(str); return *this; }
-    inline QStringList &operator<<(const QStringList &l)
-    { *this += l; return *this; }
+    Q_CORE_EXPORT QStringList operator+(const QStringList &other) const;
+    Q_CORE_EXPORT QStringList &operator<<(const QString &str);
+    Q_CORE_EXPORT QStringList &operator<<(const QStringList &l);
 
 #ifndef QT_NO_REGEXP
     inline QStringList filter(const QRegExp &rx) const;
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to