fix missing-override warnings on Scilab types
[scilab.git] / scilab / modules / ast / includes / types / bool.hxx
1 /*
2 *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 *  Copyright (C) 2008-2008 - DIGITEO - Antoine ELIAS
4 *
5  * Copyright (C) 2012 - 2016 - Scilab Enterprises
6  *
7  * This file is hereby licensed under the terms of the GNU GPL v2.0,
8  * pursuant to article 5.3.4 of the CeCILL v.2.1.
9  * This file was originally licensed under the terms of the CeCILL v2.1,
10  * and continues to be available under such terms.
11  * For more information, see the COPYING file which you should have received
12  * along with this program.
13 *
14 */
15
16 // This code is separated in bool.hxx
17 // but will be inlined in arrayof.hxx
18 //
19 // If you need additionnal headers, please add it in arrayof.hxx
20
21 //#ifndef __ARRAYOF_HXX__
22 //    #error This file must only be include by arrayof.hxx
23 //#endif
24
25 #ifndef __BOOL_HXX__
26 #define __BOOL_HXX__
27
28 #include "arrayof.hxx"
29
30 namespace types
31 {
32 class EXTERN_AST Bool : public ArrayOf<int>
33 {
34 public :
35     static Bool* True()
36     {
37         return new Bool(1);
38     }
39
40     static Bool* False()
41     {
42         return new Bool(0);
43     }
44
45 public:
46     Bool(int _bReal);
47     Bool(int _iRows, int _iCols);
48     Bool(int _iDims, const int* _piDims);
49     Bool(int _iRows, int _iCols, int **_piData);
50     ~Bool();
51
52     Bool*                   clone() override;
53
54
55     /*zero or one set filler*/
56     Bool*                   setFalse();
57     Bool*                   setTrue();
58
59     /*Config management*/
60     void                    whoAmI() override;
61
62     bool                    isBool() override
63     {
64         return true;
65     }
66
67     bool                    operator==(const InternalType& it) override;
68     bool                    operator!=(const InternalType& it) override;
69
70     /* return type as string ( double, int, cell, list, ... )*/
71     virtual std::wstring     getTypeStr() const override
72     {
73         return L"boolean";
74     }
75     /* return type as short string ( s, i, ce, l, ... )*/
76     virtual std::wstring     getShortTypeStr() const override
77     {
78         return L"b";
79     }
80
81     virtual bool transpose(InternalType *& out) override;
82
83     virtual bool isNativeType() override
84     {
85         return true;
86     }
87
88     virtual void fillDefaultValues() override
89     {
90         int size = getSize();
91         memset(m_pRealData, 0x00, sizeof(int) * size);
92     }
93
94 protected :
95     inline ScilabType       getType(void) override
96     {
97         return ScilabBool;
98     }
99     inline ScilabId         getId(void) override
100     {
101         return isScalar() ? IdScalarBool : IdBool;
102     }
103
104     virtual ast::Exp*       getExp(const Location& loc) override;
105
106 private :
107     virtual bool            subMatrixToString(std::wostringstream& ostr, int* _piDims, int _iDims) override;
108
109     virtual int             getNullValue() override;
110     virtual Bool*           createEmpty(int _iDims, int* _piDims, bool _bComplex = false) override;
111     virtual int             copyValue(int _iData) override;
112     virtual void            deleteAll() override;
113     virtual void            deleteImg() override;
114     virtual int*            allocData(int _iSize) override;
115 };
116
117 }
118
119 #ifdef _MSC_VER
120 template class types::ArrayOf<int>;//Bool
121 #endif
122 #endif /* !__BOOL_HXX__ */