3 Copyright 2007 Antoine Chavasse <a.chavasse@gmail.com>
5 This file is part of Fail.
7 Fail is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License version 3
9 as published by the Free Software Foundation.
11 Fail is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
24 template< bool Val
> struct Flag
26 static const bool value
;
29 template< bool Val
> const bool Flag
< Val
>::value
= Val
;
33 template< typename T
> struct ValueType
: public Flag
< false > {};
34 template< typename T
> struct Scriptable
: public Flag
< true > {};
35 template< typename T
> struct Storable
: public Flag
< true > {};
36 template< typename T
> struct ReadOnly
: public Flag
< false > {};
37 template< typename T
> struct Mutable
: public Flag
< true > {};
38 template< typename T
> struct Abstract
: public Flag
< false > {};
39 template< typename T
> struct Polymorphic
: public Flag
< false > {};
40 template< typename T
> struct Virtual
: public Flag
< false > {};
41 template< typename T
> struct ExtensibleByScript
: public Flag
< false > {};