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