Commit Graph

25 Commits

Author SHA1 Message Date
Mathew Sutcliffe
1283d50737 refs #345 Refactored TupleConverter flags so that they can be accessed by Private::Attribute. 2014-11-10 20:43:57 +00:00
Mathew Sutcliffe
1a5856e34c refs #345 For consistency, CValueObjectStdTuple is friend of TupleConverter specialization for template value classes. 2014-11-10 20:43:22 +00:00
Mathew Sutcliffe
e436fa3870 refs #345 Tuple tweaks to improve error messages. 2014-11-10 20:43:08 +00:00
Klaus Basan
6aba823f4f refs #327, CRTP for CValueObject classes
* using toMetaTuple, no jsonMembers function
* no un/equal operator as discussed
2014-09-11 18:34:27 +02:00
Klaus Basan
3fb5087ea8 Renaming, header, Doxygen, formatting (during refs #314) 2014-08-24 02:45:52 +02:00
Mathew Sutcliffe
1afef03c6d refs #210 workaround an apparent bug in 64bit MSVC by using a signed type for tuple flags
(using a smaller unsigned type also worked)
2014-06-19 20:08:28 +01:00
Mathew Sutcliffe
fbb89375da refs #210 added jsonName in Private::Attribute
* Explicit JSON name can be set for tuple members
* Names can still be extracted by preprocessor stringification if not explicitly set
* In both cases, names are embedded in Attribute metadata, so no need to call jsonMembers() in the value classes
2014-06-18 23:46:31 +01:00
Mathew Sutcliffe
11824206a1 refs #210 added Private::Attribute
* An Attribute contains a reference to a data member, plus some metadata
* Creates the concept of a "meta tuple", a tuple of Attribute objects
* New facilities in TupleConverterBase to be used inside the macro
* Flags allow individual data members to be selectively enabled or disabled depending on how the tuple is used
* Selective enable/disable is implemented by removing the indices of the flagged members from the index_sequence
2014-06-18 23:45:01 +01:00
Mathew Sutcliffe
45260258d6 refs #245 & #210 moved TupleConverter's parsing of the stringified macro argument into a base class, ready for further extension 2014-06-13 13:16:07 +01:00
Mathew Sutcliffe
9766b5c63a refs #245 & #210 style 2014-06-13 13:16:07 +01:00
Mathew Sutcliffe
2eb16ce9da refs #245 & #210 with proper variadic templates we can use index_sequence to simplify some of the recursion in the tuple system 2014-06-13 13:16:06 +01:00
Mathew Sutcliffe
5d38812482 refs #245 TupleConverter specialization for class templates can use a variadic parameter pack to support templates taking any number of parameters 2014-06-13 13:16:05 +01:00
Mathew Sutcliffe
b0ecaff4da refs #245 removed nested tie workarounds for tuples with >10 members 2014-06-13 13:16:05 +01:00
Mathew Sutcliffe
05fd6fbcae refs #245 removed fake variadics for tuples and predicates 2014-06-13 13:16:04 +01:00
Mathew Sutcliffe
f601334ffa refs #192 tweaking include order and moving some JSON things into global namespace
so that we invoke ADL instead of relying on a particular include order
2014-03-31 23:48:39 +01:00
Mathew Sutcliffe
8405049a85 refs #140 added streaming for tuples to QDebug 2014-03-31 23:48:38 +01:00
Mathew Sutcliffe
a34357603d integration fixes for JSON to be compatible with the nested tie workaround for tuples with more than 10 members
refs #202, #192 & #182
2014-03-31 22:36:02 +01:00
Mathew Sutcliffe
f8d991ec04 tuples: make the fake variadics more simple by sharing more code with the real variadics 2014-03-31 22:35:42 +01:00
Mathew Sutcliffe
1dfb406d54 Replaced std::tie with BlackMisc::tie, to help workaround tuples with more than 10 members.
This required some changes to the signatures of compare, qHash, and stream operators.
refs #182
2014-03-28 17:02:49 +00:00
Mathew Sutcliffe
6cf5089b18 minor style improvement:
traits class should have a static const bool value member
2014-03-28 17:00:51 +00:00
Mathew Sutcliffe
3ac59f0872 fixing typos, doxygen, and style from #192 2014-03-28 15:02:47 +00:00
Klaus Basan
9d1f8a63f3 refs #192 , added JSON support to tupel
* jsonMembers() method in Macro
* serializeJson / deserializeJson for tupels
2014-03-26 19:51:03 +01:00
Klaus Basan
5ef31069d2 refs #140 , Doxygen comments to avoid warnings 2014-03-10 14:57:29 +01:00
Mathew Sutcliffe
e93ef236af refs #140 doxygen, comment, and include tweaks 2014-03-07 23:15:58 +01:00
Mathew Sutcliffe
fcd3dc09ef refs #140 framework for using std::tuple to reduce repetitive coding in value classes 2014-03-07 23:01:25 +01:00