Branch data Line data Source code
1 : : // Copyright 2020 Mapless AI, Inc. 2 : : // 3 : : // Permission is hereby granted, free of charge, to any person obtaining a copy 4 : : // of this software and associated documentation files (the "Software"), to 5 : : // deal in the Software without restriction, including without limitation the 6 : : // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 7 : : // sell copies of the Software, and to permit persons to whom the Software is 8 : : // furnished to do so, subject to the following conditions: 9 : : // 10 : : // The above copyright notice and this permission notice shall be included in 11 : : // all copies or substantial portions of the Software. 12 : : // 13 : : // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 : : // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 : : // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 : : // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 : : // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 18 : : // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 19 : : // IN THE SOFTWARE. 20 : : 21 : : #ifndef HELPER_FUNCTIONS__BOOL_COMPARISONS_HPP_ 22 : : #define HELPER_FUNCTIONS__BOOL_COMPARISONS_HPP_ 23 : : 24 : : #include "common/types.hpp" 25 : : 26 : : namespace autoware 27 : : { 28 : : namespace common 29 : : { 30 : : namespace helper_functions 31 : : { 32 : : namespace comparisons 33 : : { 34 : : 35 : : /** 36 : : * @brief Convenience method for performing logical exclusive or ops. 37 : : * @return True iff exactly one of 'a' and 'b' is true. 38 : : */ 39 : : template<typename T> 40 : 8 : types::bool8_t exclusive_or(const T & a, const T & b) 41 : : { 42 : 8 : return static_cast<types::bool8_t>(a) != static_cast<types::bool8_t>(b); 43 : : } 44 : : 45 : : } // namespace comparisons 46 : : } // namespace helper_functions 47 : : } // namespace common 48 : : } // namespace autoware 49 : : 50 : : #endif // HELPER_FUNCTIONS__BOOL_COMPARISONS_HPP_