Mercurial > hg > segmenter-vamp-plugin
annotate armadillo-3.900.4/include/armadillo_bits/arma_static_check.hpp @ 84:55a047986812 tip
Update library URI so as not to be document-local
author | Chris Cannam |
---|---|
date | Wed, 22 Apr 2020 14:21:57 +0100 |
parents | 1ec0e2823891 |
children |
rev | line source |
---|---|
Chris@49 | 1 // Copyright (C) 2008-2011 NICTA (www.nicta.com.au) |
Chris@49 | 2 // Copyright (C) 2008-2011 Conrad Sanderson |
Chris@49 | 3 // |
Chris@49 | 4 // This Source Code Form is subject to the terms of the Mozilla Public |
Chris@49 | 5 // License, v. 2.0. If a copy of the MPL was not distributed with this |
Chris@49 | 6 // file, You can obtain one at http://mozilla.org/MPL/2.0/. |
Chris@49 | 7 |
Chris@49 | 8 |
Chris@49 | 9 //! \addtogroup arma_static_check |
Chris@49 | 10 //! @{ |
Chris@49 | 11 |
Chris@49 | 12 |
Chris@49 | 13 |
Chris@49 | 14 template<bool ERROR___INCORRECT_OR_UNSUPPORTED_TYPE> |
Chris@49 | 15 struct arma_type_check_cxx1998 |
Chris@49 | 16 { |
Chris@49 | 17 arma_inline |
Chris@49 | 18 static |
Chris@49 | 19 void |
Chris@49 | 20 apply() |
Chris@49 | 21 { |
Chris@49 | 22 static const char |
Chris@49 | 23 junk[ ERROR___INCORRECT_OR_UNSUPPORTED_TYPE ? -1 : +1 ]; |
Chris@49 | 24 } |
Chris@49 | 25 }; |
Chris@49 | 26 |
Chris@49 | 27 |
Chris@49 | 28 |
Chris@49 | 29 template<> |
Chris@49 | 30 struct arma_type_check_cxx1998<false> |
Chris@49 | 31 { |
Chris@49 | 32 arma_inline |
Chris@49 | 33 static |
Chris@49 | 34 void |
Chris@49 | 35 apply() |
Chris@49 | 36 { |
Chris@49 | 37 } |
Chris@49 | 38 }; |
Chris@49 | 39 |
Chris@49 | 40 |
Chris@49 | 41 |
Chris@49 | 42 #if !defined(ARMA_USE_CXX11) |
Chris@49 | 43 |
Chris@49 | 44 #define arma_static_check(condition, message) static const char message[ (condition) ? -1 : +1 ] |
Chris@49 | 45 |
Chris@49 | 46 #define arma_type_check(condition) arma_type_check_cxx1998<condition>::apply() |
Chris@49 | 47 |
Chris@49 | 48 #else |
Chris@49 | 49 |
Chris@49 | 50 #define arma_static_check(condition, message) static_assert( !(condition), #message ) |
Chris@49 | 51 |
Chris@49 | 52 #define arma_type_check(condition) static_assert( !(condition), "error: incorrect or unsupported type" ) |
Chris@49 | 53 |
Chris@49 | 54 #endif |
Chris@49 | 55 |
Chris@49 | 56 |
Chris@49 | 57 |
Chris@49 | 58 //! @} |