Mercurial > octave
diff src/bitfcns.cc @ 14725:fa48fd0f160f
Add configure check for templated bitwise operators.
* m4/acinclude.m4 (OCTAVE_CXX_BITWISE_OP_TEMPLATES): New macro.
* configure.ac: Use it.
* src/bitfcns.cc: Define bit_and, bit_or and bit_xor if missing.
author | Carlo de Falco <cdf@users.sourceforge.net> |
---|---|
date | Tue, 05 Jun 2012 07:39:46 +0200 |
parents | 57e4ff70b7c1 |
children | 460a3c6d8bf1 |
line wrap: on
line diff
--- a/src/bitfcns.cc Mon Jun 04 20:55:25 2012 -0400 +++ b/src/bitfcns.cc Tue Jun 05 07:39:46 2012 +0200 @@ -44,6 +44,32 @@ #include <functional> +#if !defined (HAVE_CXX_BITWISE_OP_TEMPLATES) +namespace std +{ + template <typename T> + struct bit_and + { + public: + T operator() (const T & op1, const T & op2) const { return (op1 & op2); } + }; + + template <typename T> + struct bit_or + { + public: + T operator() (const T & op1, const T & op2) const { return (op1 | op2); } + }; + + template <typename T> + struct bit_xor + { + public: + T operator() (const T & op1, const T & op2) const { return (op1 ^ op2); } + }; +} +#endif + template <typename OP, typename T> octave_value bitopxx(const OP& op, const std::string& fname,