QxConvert_ToVariant.inl 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361
  1. /****************************************************************************
  2. **
  3. ** https://www.qxorm.com/
  4. ** Copyright (C) 2013 Lionel Marty (contact@qxorm.com)
  5. **
  6. ** This file is part of the QxOrm library
  7. **
  8. ** This software is provided 'as-is', without any express or implied
  9. ** warranty. In no event will the authors be held liable for any
  10. ** damages arising from the use of this software
  11. **
  12. ** Commercial Usage
  13. ** Licensees holding valid commercial QxOrm licenses may use this file in
  14. ** accordance with the commercial license agreement provided with the
  15. ** Software or, alternatively, in accordance with the terms contained in
  16. ** a written agreement between you and Lionel Marty
  17. **
  18. ** GNU General Public License Usage
  19. ** Alternatively, this file may be used under the terms of the GNU
  20. ** General Public License version 3.0 as published by the Free Software
  21. ** Foundation and appearing in the file 'license.gpl3.txt' included in the
  22. ** packaging of this file. Please review the following information to
  23. ** ensure the GNU General Public License version 3.0 requirements will be
  24. ** met : http://www.gnu.org/copyleft/gpl.html
  25. **
  26. ** If you are unsure which license is appropriate for your use, or
  27. ** if you have questions regarding the use of this file, please contact :
  28. ** contact@qxorm.com
  29. **
  30. ****************************************************************************/
  31. #ifdef _QX_ENABLE_BOOST_SERIALIZATION
  32. #define QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT QX_CVT_DEFAULT_ARCHIVE::to_string(t)
  33. #else // _QX_ENABLE_BOOST_SERIALIZATION
  34. #define QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT QX_CVT_DEFAULT_ARCHIVE::to_byte_array(t)
  35. #endif // _QX_ENABLE_BOOST_SERIALIZATION
  36. #include <QxTraits/construct_null_qvariant.h>
  37. namespace qx {
  38. namespace cvt {
  39. namespace detail {
  40. template <> struct QxConvert_ToVariant< qx::trait::no_type > {
  41. static inline QVariant toVariant(const qx::trait::no_type & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  42. { Q_UNUSED(t); Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QVariant(); } };
  43. template <> struct QxConvert_ToVariant< bool > {
  44. static inline QVariant toVariant(const bool & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  45. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QVariant(t); } };
  46. template <> struct QxConvert_ToVariant< short > {
  47. static inline QVariant toVariant(const short & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  48. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QVariant(static_cast<int>(t)); } };
  49. template <> struct QxConvert_ToVariant< int > {
  50. static inline QVariant toVariant(const int & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  51. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QVariant(t); } };
  52. template <> struct QxConvert_ToVariant< long > {
  53. static inline QVariant toVariant(const long & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  54. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QVariant(static_cast<qlonglong>(t)); } };
  55. template <> struct QxConvert_ToVariant< long long > {
  56. static inline QVariant toVariant(const long long & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  57. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QVariant(static_cast<qlonglong>(t)); } };
  58. template <> struct QxConvert_ToVariant< float > {
  59. static inline QVariant toVariant(const float & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  60. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QVariant(static_cast<double>(t)); } };
  61. template <> struct QxConvert_ToVariant< double > {
  62. static inline QVariant toVariant(const double & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  63. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QVariant(t); } };
  64. template <> struct QxConvert_ToVariant< unsigned short > {
  65. static inline QVariant toVariant(const unsigned short & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  66. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QVariant(static_cast<unsigned int>(t)); } };
  67. template <> struct QxConvert_ToVariant< unsigned int > {
  68. static inline QVariant toVariant(const unsigned int & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  69. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QVariant(t); } };
  70. template <> struct QxConvert_ToVariant< unsigned long > {
  71. static inline QVariant toVariant(const unsigned long & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  72. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QVariant(static_cast<qulonglong>(t)); } };
  73. template <> struct QxConvert_ToVariant< unsigned long long > {
  74. static inline QVariant toVariant(const unsigned long long & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  75. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QVariant(static_cast<qulonglong>(t)); } };
  76. template <> struct QxConvert_ToVariant< QDate > {
  77. static inline QVariant toVariant(const QDate & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  78. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QVariant(t); } };
  79. template <> struct QxConvert_ToVariant< QTime > {
  80. static inline QVariant toVariant(const QTime & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  81. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QVariant(t); } };
  82. template <> struct QxConvert_ToVariant< QDateTime > {
  83. static inline QVariant toVariant(const QDateTime & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  84. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QVariant(t); } };
  85. template <> struct QxConvert_ToVariant< QByteArray > {
  86. static inline QVariant toVariant(const QByteArray & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  87. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QVariant(t); } };
  88. template <> struct QxConvert_ToVariant< QString > {
  89. static inline QVariant toVariant(const QString & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  90. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QVariant(t); } };
  91. template <>
  92. struct QxConvert_ToVariant< QVariant >
  93. {
  94. static inline QVariant toVariant(const QVariant & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  95. {
  96. if (ctx != qx::cvt::context::e_database) { return t; }
  97. if (! qx::cvt::detail::helper::checkConvertQVariantToString(t)) { return t; }
  98. return QVariant(qx::cvt::detail::QxConvert_ToString< QVariant >::toString(t, format, index, ctx));
  99. }
  100. };
  101. template <> struct QxConvert_ToVariant< QUuid > {
  102. static inline QVariant toVariant(const QUuid & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  103. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QVariant(t.toString()); } };
  104. template <> struct QxConvert_ToVariant< qx::QxDateNeutral > {
  105. static inline QVariant toVariant(const qx::QxDateNeutral & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  106. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QVariant(t.toNeutral()); } };
  107. template <> struct QxConvert_ToVariant< qx::QxTimeNeutral > {
  108. static inline QVariant toVariant(const qx::QxTimeNeutral & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  109. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QVariant(t.toNeutral()); } };
  110. template <> struct QxConvert_ToVariant< qx::QxDateTimeNeutral > {
  111. static inline QVariant toVariant(const qx::QxDateTimeNeutral & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  112. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QVariant(t.toNeutral()); } };
  113. template <> struct QxConvert_ToVariant< std::string > {
  114. static inline QVariant toVariant(const std::string & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  115. #ifndef QT_NO_STL
  116. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QString::fromStdString(t); } };
  117. #else // QT_NO_STL
  118. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QString::fromLatin1(t.data(), int(t.size())); } };
  119. #endif // QT_NO_STL
  120. template <> struct QxConvert_ToVariant< std::wstring > {
  121. static inline QVariant toVariant(const std::wstring & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  122. #if ((! defined(QT_NO_STL)) && (! defined(QT_NO_STL_WCHAR)))
  123. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QString::fromStdWString(t); } };
  124. #else // ((! defined(QT_NO_STL)) && (! defined(QT_NO_STL_WCHAR)))
  125. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); Q_UNUSED(t); qAssert(false); /* Need STL compatibility ! */ return QVariant(); } };
  126. #endif // ((! defined(QT_NO_STL)) && (! defined(QT_NO_STL_WCHAR)))
  127. template <> struct QxConvert_ToVariant< qx_bool > {
  128. static inline QVariant toVariant(const qx_bool & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  129. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return t.toString(); } };
  130. #ifndef _QX_NO_JSON
  131. template <> struct QxConvert_ToVariant< QJsonValue > {
  132. static inline QVariant toVariant(const QJsonValue & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  133. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return t.toVariant(); } };
  134. template <> struct QxConvert_ToVariant< QJsonArray > {
  135. static inline QVariant toVariant(const QJsonArray & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  136. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); QVariant var(t); return var; } };
  137. template <> struct QxConvert_ToVariant< QJsonObject > {
  138. static inline QVariant toVariant(const QJsonObject & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  139. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); QVariant var(t); return var; } };
  140. #endif // _QX_NO_JSON
  141. #ifdef _QX_ENABLE_BOOST
  142. template <typename T> struct QxConvert_ToVariant< boost::optional<T> > {
  143. static inline QVariant toVariant(const boost::optional<T> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  144. { if (t) { return qx::cvt::to_variant((* t), format, index, ctx); }; return qx::trait::construct_null_qvariant<T>::get(); } };
  145. #endif // _QX_ENABLE_BOOST
  146. template <typename T1, typename T2> struct QxConvert_ToVariant< std::pair<T1, T2> > {
  147. static inline QVariant toVariant(const std::pair<T1, T2> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  148. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  149. template <typename T1, typename T2> struct QxConvert_ToVariant< QPair<T1, T2> > {
  150. static inline QVariant toVariant(const QPair<T1, T2> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  151. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  152. template <typename T> struct QxConvert_ToVariant< std::vector<T> > {
  153. static inline QVariant toVariant(const std::vector<T> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  154. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  155. template <typename T> struct QxConvert_ToVariant< std::list<T> > {
  156. static inline QVariant toVariant(const std::list<T> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  157. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  158. template <typename T> struct QxConvert_ToVariant< std::set<T> > {
  159. static inline QVariant toVariant(const std::set<T> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  160. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  161. #ifdef _QX_ENABLE_BOOST
  162. template <typename T> struct QxConvert_ToVariant< boost::unordered_set<T> > {
  163. static inline QVariant toVariant(const boost::unordered_set<T> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  164. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  165. template <typename T> struct QxConvert_ToVariant< boost::unordered_multiset<T> > {
  166. static inline QVariant toVariant(const boost::unordered_multiset<T> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  167. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  168. #endif // _QX_ENABLE_BOOST
  169. template <typename T> struct QxConvert_ToVariant< std::unordered_set<T> > {
  170. static inline QVariant toVariant(const std::unordered_set<T> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  171. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  172. template <typename T> struct QxConvert_ToVariant< std::unordered_multiset<T> > {
  173. static inline QVariant toVariant(const std::unordered_multiset<T> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  174. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  175. template <typename T> struct QxConvert_ToVariant< QVector<T> > {
  176. static inline QVariant toVariant(const QVector<T> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  177. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  178. template <typename T> struct QxConvert_ToVariant< QList<T> > {
  179. static inline QVariant toVariant(const QList<T> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  180. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  181. template <typename T> struct QxConvert_ToVariant< QLinkedList<T> > {
  182. static inline QVariant toVariant(const QLinkedList<T> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  183. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  184. template <typename T> struct QxConvert_ToVariant< QFlags<T> > {
  185. static inline QVariant toVariant(const QFlags<T> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  186. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QString::number(static_cast<int>(t)); } };
  187. template <typename Key, typename Value> struct QxConvert_ToVariant< std::map<Key, Value> > {
  188. static inline QVariant toVariant(const std::map<Key, Value> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  189. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  190. #ifdef _QX_ENABLE_BOOST
  191. template <typename Key, typename Value> struct QxConvert_ToVariant< boost::unordered_map<Key, Value> > {
  192. static inline QVariant toVariant(const boost::unordered_map<Key, Value> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  193. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  194. template <typename Key, typename Value> struct QxConvert_ToVariant< boost::unordered_multimap<Key, Value> > {
  195. static inline QVariant toVariant(const boost::unordered_multimap<Key, Value> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  196. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  197. #endif // _QX_ENABLE_BOOST
  198. template <typename Key, typename Value> struct QxConvert_ToVariant< std::unordered_map<Key, Value> > {
  199. static inline QVariant toVariant(const std::unordered_map<Key, Value> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  200. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  201. template <typename Key, typename Value> struct QxConvert_ToVariant< std::unordered_multimap<Key, Value> > {
  202. static inline QVariant toVariant(const std::unordered_multimap<Key, Value> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  203. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  204. template <typename Key, typename Value> struct QxConvert_ToVariant< QHash<Key, Value> > {
  205. static inline QVariant toVariant(const QHash<Key, Value> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  206. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  207. template <typename Key, typename Value> struct QxConvert_ToVariant< QMultiHash<Key, Value> > {
  208. static inline QVariant toVariant(const QMultiHash<Key, Value> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  209. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  210. template <typename Key, typename Value> struct QxConvert_ToVariant< QMap<Key, Value> > {
  211. static inline QVariant toVariant(const QMap<Key, Value> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  212. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  213. template <typename Key, typename Value> struct QxConvert_ToVariant< QMultiMap<Key, Value> > {
  214. static inline QVariant toVariant(const QMultiMap<Key, Value> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  215. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  216. template <typename Key, typename Value> struct QxConvert_ToVariant< qx::QxCollection<Key, Value> > {
  217. static inline QVariant toVariant(const qx::QxCollection<Key, Value> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  218. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  219. #ifdef _QX_ENABLE_BOOST
  220. template <typename T1> struct QxConvert_ToVariant< boost::tuple<T1> > {
  221. static inline QVariant toVariant(const boost::tuple<T1> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  222. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  223. template <typename T1, typename T2> struct QxConvert_ToVariant< boost::tuple<T1, T2> > {
  224. static inline QVariant toVariant(const boost::tuple<T1, T2> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  225. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  226. template <typename T1, typename T2, typename T3> struct QxConvert_ToVariant< boost::tuple<T1, T2, T3> > {
  227. static inline QVariant toVariant(const boost::tuple<T1, T2, T3> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  228. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  229. template <typename T1, typename T2, typename T3, typename T4> struct QxConvert_ToVariant< boost::tuple<T1, T2, T3, T4> > {
  230. static inline QVariant toVariant(const boost::tuple<T1, T2, T3, T4> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  231. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  232. template <typename T1, typename T2, typename T3, typename T4, typename T5> struct QxConvert_ToVariant< boost::tuple<T1, T2, T3, T4, T5> > {
  233. static inline QVariant toVariant(const boost::tuple<T1, T2, T3, T4, T5> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  234. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  235. template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6> struct QxConvert_ToVariant< boost::tuple<T1, T2, T3, T4, T5, T6> > {
  236. static inline QVariant toVariant(const boost::tuple<T1, T2, T3, T4, T5, T6> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  237. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  238. template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7> struct QxConvert_ToVariant< boost::tuple<T1, T2, T3, T4, T5, T6, T7> > {
  239. static inline QVariant toVariant(const boost::tuple<T1, T2, T3, T4, T5, T6, T7> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  240. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  241. template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8> struct QxConvert_ToVariant< boost::tuple<T1, T2, T3, T4, T5, T6, T7, T8> > {
  242. static inline QVariant toVariant(const boost::tuple<T1, T2, T3, T4, T5, T6, T7, T8> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  243. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  244. template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9> struct QxConvert_ToVariant< boost::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9> > {
  245. static inline QVariant toVariant(const boost::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  246. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  247. #endif // _QX_ENABLE_BOOST
  248. template <typename T1> struct QxConvert_ToVariant< std::tuple<T1> > {
  249. static inline QVariant toVariant(const std::tuple<T1> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  250. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  251. template <typename T1, typename T2> struct QxConvert_ToVariant< std::tuple<T1, T2> > {
  252. static inline QVariant toVariant(const std::tuple<T1, T2> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  253. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  254. template <typename T1, typename T2, typename T3> struct QxConvert_ToVariant< std::tuple<T1, T2, T3> > {
  255. static inline QVariant toVariant(const std::tuple<T1, T2, T3> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  256. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  257. template <typename T1, typename T2, typename T3, typename T4> struct QxConvert_ToVariant< std::tuple<T1, T2, T3, T4> > {
  258. static inline QVariant toVariant(const std::tuple<T1, T2, T3, T4> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  259. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  260. template <typename T1, typename T2, typename T3, typename T4, typename T5> struct QxConvert_ToVariant< std::tuple<T1, T2, T3, T4, T5> > {
  261. static inline QVariant toVariant(const std::tuple<T1, T2, T3, T4, T5> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  262. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  263. template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6> struct QxConvert_ToVariant< std::tuple<T1, T2, T3, T4, T5, T6> > {
  264. static inline QVariant toVariant(const std::tuple<T1, T2, T3, T4, T5, T6> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  265. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  266. template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7> struct QxConvert_ToVariant< std::tuple<T1, T2, T3, T4, T5, T6, T7> > {
  267. static inline QVariant toVariant(const std::tuple<T1, T2, T3, T4, T5, T6, T7> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  268. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  269. template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8> struct QxConvert_ToVariant< std::tuple<T1, T2, T3, T4, T5, T6, T7, T8> > {
  270. static inline QVariant toVariant(const std::tuple<T1, T2, T3, T4, T5, T6, T7, T8> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  271. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  272. template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9> struct QxConvert_ToVariant< std::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9> > {
  273. static inline QVariant toVariant(const std::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9> & t, const QString & format, int index, qx::cvt::context::ctx_type ctx)
  274. { Q_UNUSED(format); Q_UNUSED(index); Q_UNUSED(ctx); return QX_CVT_DEFAULT_ARCHIVE_TO_VARIANT; } };
  275. } // namespace detail
  276. } // namespace cvt
  277. } // namespace qx