Bayeux  3.4.1
Core Foundation library for SuperNEMO
vg_macros.h
Go to the documentation of this file.
1 /* Author(s) : Francois Mauger <mauger@lpccaen.in2p3.fr>
4  * Creation date : 2012-04-24
5  * Last modified : 2014-04-09
6  *
7  * Copyright (C) 2012-2014 Francois Mauger <mauger@lpccaen.in2p3.fr>
8  *
9  * This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 3 of the License, or (at
12  * your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful, but
15  * WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17  * General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, write to the Free Software
21  * Foundation, Inc., 51 Franklin Street, Fifth Floor,
22  * Boston, MA 02110-1301, USA.
23  *
24  * Description:
25  *
26  * Macros to register vertex generator classes.
27  *
28  * History:
29  *
30  */
31 
32 #ifndef GENVTX_VG_MACROS_H
33 #define GENVTX_VG_MACROS_H 1
34 
35 // Third party:
36 // - Boost:
37 #include <boost/type_traits/integral_constant.hpp>
38 
39 // This project:
41 
42 /*** Macros for registration of static creator methods for vertex generator classes ***/
43 
46 #define GENVTX_VG_REGISTRATION_INTERFACE(GENVTX_CLASS_NAME) \
47  private: \
48  DATATOOLS_FACTORY_SYSTEM_AUTO_REGISTRATION_INTERFACE (::genvtx::i_vertex_generator,GENVTX_CLASS_NAME) \
49 
50 
51 #define GENVTX_VG_REGISTRATION_IMPLEMENT(GENVTX_CLASS_NAME,GENVTX_ID) \
52  DATATOOLS_FACTORY_SYSTEM_AUTO_REGISTRATION_IMPLEMENTATION (::genvtx::i_vertex_generator,GENVTX_CLASS_NAME,GENVTX_ID) \
53 
54 
55 #define GENVTX_VG_VALIDATOR_SUPPORT(GENVTX_CLASS_NAME) \
56  struct ::genvtx::vertex_generator_validator_support_traits< GENVTX_CLASS_NAME > : public boost::true_type{}; \
57 
58 
59 #endif // GENVTX_VG_MACROS_H
60 
61 /*
62 ** Local Variables: --
63 ** mode: c++ --
64 ** c-file-style: "gnu" --
65 ** tab-width: 2 --
66 ** End: --
67 */