2011-12-12 21:59:53 +11:00
|
|
|
#ifndef NALL_XORG_GUARD_HPP
|
|
|
|
#define NALL_XORG_GUARD_HPP
|
|
|
|
|
2016-10-28 08:16:58 +11:00
|
|
|
#define Atom XlibAtom
|
2013-04-14 18:52:47 +10:00
|
|
|
#define Bool XlibBool
|
2011-12-12 21:59:53 +11:00
|
|
|
#define Display XlibDisplay
|
|
|
|
#define Screen XlibScreen
|
|
|
|
#define Window XlibWindow
|
|
|
|
|
|
|
|
#else
|
|
|
|
#undef NALL_XORG_GUARD_HPP
|
|
|
|
|
2016-10-28 08:16:58 +11:00
|
|
|
#undef Atom
|
2013-04-14 18:52:47 +10:00
|
|
|
#undef Bool
|
2016-10-28 08:16:58 +11:00
|
|
|
#undef Display
|
|
|
|
#undef Screen
|
|
|
|
#undef Window
|
|
|
|
|
|
|
|
#ifndef NALL_XORG_GUARD_CONSTANTS
|
|
|
|
#define NALL_XORG_GUARD_CONSTANTS
|
|
|
|
enum XlibConstants : int {
|
|
|
|
XlibButton1 = Button1,
|
|
|
|
XlibButton2 = Button2,
|
|
|
|
XlibButton3 = Button3,
|
|
|
|
XlibButton4 = Button4,
|
|
|
|
XlibButton5 = Button5,
|
|
|
|
XlibCurrentTime = CurrentTime,
|
|
|
|
XlibFalse = False,
|
|
|
|
XlibNone = None,
|
|
|
|
XlibTrue = True,
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
2011-12-12 21:59:53 +11:00
|
|
|
#undef Button1
|
|
|
|
#undef Button2
|
|
|
|
#undef Button3
|
|
|
|
#undef Button4
|
|
|
|
#undef Button5
|
2016-10-28 08:16:58 +11:00
|
|
|
#undef CurrentTime
|
|
|
|
#undef False
|
|
|
|
#undef None
|
|
|
|
#undef True
|
2011-12-12 21:59:53 +11:00
|
|
|
|
Update to v106r79 release.
byuu says:
This WIP is just work on nall/primitives ...
Basically, I'm coming to the conclusion that it's just not practical to
try and make Natural/Integer implicitly castable to primitive signed and
unsigned integers. C++ just has too many edge cases there.
I also want to get away from the problem of C++ deciding that all math
operations return 32-bit values, unless one of the parameters is 64-bit,
in which case you get a 64-bit value. You know, so things like
array[-1] won't end up accessing the 4 billionth element of the array.
It's nice to be fancy and minimally size operations (eg 32-bit+32-bit =
33-bit), but it's just too unintuitive. I think all
Natural<X>+Natural<Y> expessions should result in a Natural<64> (eg
natural) type.
nall/primitives/operators.hpp has been removed, and new
Natural<>Natural / Integer<>Integer casts exist. My feeling is that
signed and unsigned types should not be implicitly convertible where
data loss can occur. In the future, I think an integer8*natural8 is
fine to return an integer64, and the bitwise operators are probably all
fine between the two types. I could probably add
(Integer,Natural)+Boolean conversions as well.
To simplify expressions, there are new user-defined literals for _b
(boolean), _n (natural), _i (integer), _r (real), _n# (eg _n8),
_i# (eg _i8), _r# (eg _r32), and _s (nall::string).
In the long-term, my intention is to make the conversion and cast
constructors explicit for primitive types, but obviously that'll shatter
most of higan, so for now that won't be the case.
Something I can do in the future is allow implicit conversion and
casting to (u)int64_t. That may be a nice balance.
2019-01-15 15:33:20 +11:00
|
|
|
#undef MAX
|
|
|
|
#undef MIN
|
|
|
|
|
2011-12-12 21:59:53 +11:00
|
|
|
#endif
|