nVoid.hpp
Go to the documentation of this file.
1
2#pragma once
3
5
6namespace by {
7
12 class _nout nVoid: public primitiveObj<void> {
16 class _nout wVoidType: public ntype {
17 public:
18 nbool isImmutable() const override;
19 const std::string& getName() const override;
20
21 protected:
22 const impliAses& _getImpliAses() const override;
23 };
24 BY(CLASS(nVoid, primitiveObj<void>, wVoidType), VISIT())
25
26 public:
27 tstr<arithmeticObj> bitwiseNot() const override;
28
29 const baseObj& getOrigin() const override;
30
31 public:
32 static me& singleton();
33
34 protected:
35 tstr<arithmeticObj> _add(const arithmeticObj& rhs, nbool reversed) const override;
36 tstr<arithmeticObj> _sub(const arithmeticObj& rhs, nbool reversed) const override;
37 tstr<arithmeticObj> _mul(const arithmeticObj& rhs, nbool reversed) const override;
38 tstr<arithmeticObj> _div(const arithmeticObj& rhs, nbool reversed) const override;
39 tstr<arithmeticObj> _mod(const arithmeticObj& rhs, nbool reversed) const override;
40 tstr<arithmeticObj> _bitwiseAnd(const arithmeticObj& rhs, nbool reversed) const override;
41 tstr<arithmeticObj> _bitwiseXor(const arithmeticObj& rhs, nbool reversed) const override;
42 tstr<arithmeticObj> _bitwiseOr(const arithmeticObj& rhs, nbool reversed) const override;
43 tstr<arithmeticObj> _lshift(const arithmeticObj& rhs, nbool reversed) const override;
44 tstr<arithmeticObj> _rshift(const arithmeticObj& rhs, nbool reversed) const override;
45
46 nbool _eq(const arithmeticObj& rhs) const override;
47 nbool _ne(const arithmeticObj& rhs) const override;
48 nbool _gt(const arithmeticObj& rhs) const override;
49 nbool _lt(const arithmeticObj& rhs) const override;
50 nbool _ge(const arithmeticObj& rhs) const override;
51 nbool _le(const arithmeticObj& rhs) const override;
52 nbool _logicalAnd(const arithmeticObj& rhs) const override;
53 nbool _logicalOr(const arithmeticObj& rhs) const override;
54
55 arithmeticObj& _mov(const arithmeticObj& rhs) override;
56 };
57} // namespace by
Base class for arithmetic operations on primitive types.
Definition: arithmeticObj.hpp:13
Base class for all objects in byeol language.
Definition: baseObj.hpp:24
Implicit type conversion collection.
Definition: impliAses.hpp:11
Void primitive type in byeol language.
Definition: nVoid.hpp:12
Native type system for byeol language.
Definition: ntype.hpp:19
Definition: primitiveObj.hpp:53
Definition: primitiveObj.hpp:13
Strong reference smart pointer with strict type checking.
Definition: tstr.hpp:13