Mercurial > hg > segmenter-vamp-plugin
annotate armadillo-2.4.4/include/armadillo_bits/arma_static_check.hpp @ 18:8d046a9d36aa slimline
Back out rev 13:ac07c60aa798. Like an idiot, I committed a whole pile of unrelated changes in the guise of a single typo fix. Will re-commit in stages
author | Chris Cannam |
---|---|
date | Thu, 10 May 2012 10:45:44 +0100 |
parents | 8b6102e2a9b0 |
children |
rev | line source |
---|---|
max@0 | 1 // Copyright (C) 2008-2011 NICTA (www.nicta.com.au) |
max@0 | 2 // Copyright (C) 2008-2011 Conrad Sanderson |
max@0 | 3 // |
max@0 | 4 // This file is part of the Armadillo C++ library. |
max@0 | 5 // It is provided without any warranty of fitness |
max@0 | 6 // for any purpose. You can redistribute this file |
max@0 | 7 // and/or modify it under the terms of the GNU |
max@0 | 8 // Lesser General Public License (LGPL) as published |
max@0 | 9 // by the Free Software Foundation, either version 3 |
max@0 | 10 // of the License or (at your option) any later version. |
max@0 | 11 // (see http://www.opensource.org/licenses for more info) |
max@0 | 12 |
max@0 | 13 |
max@0 | 14 //! \addtogroup arma_static_check |
max@0 | 15 //! @{ |
max@0 | 16 |
max@0 | 17 |
max@0 | 18 |
max@0 | 19 template<bool ERROR___INCORRECT_OR_UNSUPPORTED_TYPE> |
max@0 | 20 struct arma_type_check_cxx1998 |
max@0 | 21 { |
max@0 | 22 arma_inline |
max@0 | 23 static |
max@0 | 24 void |
max@0 | 25 apply() |
max@0 | 26 { |
max@0 | 27 static const char |
max@0 | 28 junk[ ERROR___INCORRECT_OR_UNSUPPORTED_TYPE ? -1 : +1 ]; |
max@0 | 29 } |
max@0 | 30 }; |
max@0 | 31 |
max@0 | 32 |
max@0 | 33 |
max@0 | 34 template<> |
max@0 | 35 struct arma_type_check_cxx1998<false> |
max@0 | 36 { |
max@0 | 37 arma_inline |
max@0 | 38 static |
max@0 | 39 void |
max@0 | 40 apply() |
max@0 | 41 { |
max@0 | 42 } |
max@0 | 43 }; |
max@0 | 44 |
max@0 | 45 |
max@0 | 46 |
max@0 | 47 #if !defined(ARMA_USE_CXX11) |
max@0 | 48 |
max@0 | 49 #define arma_static_check(condition, message) static const char message[ (condition) ? -1 : +1 ] |
max@0 | 50 |
max@0 | 51 #define arma_type_check(condition) arma_type_check_cxx1998<condition>::apply() |
max@0 | 52 |
max@0 | 53 #else |
max@0 | 54 |
max@0 | 55 #define arma_static_check(condition, message) static_assert( !(condition), #message ) |
max@0 | 56 |
max@0 | 57 #define arma_type_check(condition) static_assert( !(condition), "error: incorrect or unsupported type" ) |
max@0 | 58 |
max@0 | 59 #endif |
max@0 | 60 |
max@0 | 61 |
max@0 | 62 |
max@0 | 63 //! @} |