67c682d5a2
strongdef: pretend to be an enum for introspection purposes
2019-08-29 14:05:18 +10:00
41edd3cebe
types/description: add initial enum support
2019-05-30 10:43:28 +10:00
6bc13544dd
types/description: add support for coordinate types
2019-05-17 10:55:49 +10:00
d8c8d00a4b
strongdef: add move constructor and assignment operators
2019-05-08 10:33:09 +10:00
065daa96c6
strongdef: don't expose the raw data directly
2019-03-20 15:39:24 +11:00
81538a86d3
strongdef: force integer promotion in ostream operator
2019-03-14 16:52:05 +11:00
f6056153e3
rename root namespace from util to cruft
...
This places, at long last, the core library code into the same namespace
as the extended library code.
2018-08-05 14:42:02 +10:00
803acc9a87
relicense under MPL-2.0
2018-08-04 15:14:06 +10:00
4e10aa59b2
strongdef: remove the numeric_limits specialisation
...
Apparently we don't need this any more, and it's kinda ugly.
2018-06-27 17:59:26 +10:00
0df16bb9ee
strongdef: swap template params, move to dedicated namespace
2018-06-27 17:58:45 +10:00
279af4c796
strongdef: significantly tighten restrictions on usage
...
It turns out that equality in particular was triggering implicit
construction of strongdef types. We make it much harder for these types
to spontaneously emerge.
2018-06-22 17:41:56 +10:00
6f3952abcb
strongdef: add default constructor if the type supports it
2018-06-21 13:18:53 +10:00
8cd33ae5e5
strongdef: allow constructor to be implicit
2018-06-05 13:25:23 +10:00
d206b316a9
strongdef: style
2018-01-24 17:31:22 +11:00
90621ca7f8
strongdef: remove unnecessary copy constructor
...
Reduces issues with compiler generated assignment operators.
2017-01-27 14:56:54 +11:00
2e54950b1a
strongdef: delete default constructor
...
generally we use this for identifiers, and allowing the user to express
arbitrary values from default construction isn't a great idea.
2016-10-07 17:33:03 +11:00
ab330cc520
add ref-qualifiers to avoid dangling refs/ptrs
2016-03-17 18:05:28 +11:00
b70a84c9be
strongdef: make equality operator constexpr
2016-02-03 14:37:38 +11:00
a3bdf1b7a1
strongdef: disable mismatched T/Tag assignment
2015-11-25 13:32:29 +11:00
a8e4e39f8f
strongdef: prevent conversion operator based equality
2015-11-24 16:48:07 +11:00
99d025af4d
strongdef: actually use tagging for disambiguation...
2015-11-19 15:06:52 +11:00
38678cc78e
strongdef: add specialisation of numeric_limits
2015-11-18 14:46:43 +11:00
bb1652b8f3
strongdef: add simple thin value wrapper type
...
useful for strong typesafe typedefs.
2015-11-17 22:27:49 +11:00