pelib  2.0.0
include/pelib/template.h
Go to the documentation of this file.
00001 /*
00002  * template.h
00003  *
00004  *  Created on: 20 Feb 2012
00005  *  Copyright 2012 Nicolas Melot
00006  *
00007  * This file is part of pelib.
00008  * 
00009  *     pelib is free software: you can redistribute it and/or modify
00010  *     it under the terms of the GNU General Public License as published by
00011  *     the Free Software Foundation, either version 3 of the License, or
00012  *     (at your option) any later version.
00013  * 
00014  *     pelib is distributed in the hope that it will be useful,
00015  *     but WITHOUT ANY WARRANTY; without even the implied warranty of
00016  *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00017  *     GNU General Public License for more details.
00018  * 
00019  *     You should have received a copy of the GNU General Public License
00020  *     along with pelib. If not, see <http://www.gnu.org/licenses/>.
00021  * 
00022  */
00023 
00024 #ifndef TEMPLATE_H_
00025 #define TEMPLATE_H_
00026 
00027 #define PELIB_GLUE(a, b) a ## b
00028 #define PELIB_CONCAT_2(FIRST, SECOND) PELIB_GLU##E(FIRST, SECOND)
00029 #define PELIB_CONCAT_3(FIRST, SECOND, THIRD) PELIB_CO##NCAT_2(PELIB_CONCAT_2(FIRST, SECOND), THIRD)
00030 #define PELIB_CONCAT_4(FIRST, SECOND, THIRD, FOURTH) PELIB_CON##CAT_2(PELIB_CONCAT_3(FIRST, SECOND, THIRD), FOURTH)
00031 #define PELIB_CONCAT_5(FIRST, SECOND, THIRD, FOURTH, FIFTH) PELIB_CON##CAT_2(PELIB_CONCAT_4(FIRST, SECOND, THIRD, FOURTH), FIFTH)
00032 
00033 #endif /* TEMPLATE_H_ */