Hello scipy, I'm working on the bool_ops.h file in sparse/sparsetools which wraps numpy bool type for the c++ routines. Currently it just does
typedef npy_int8 npy_bool_wrapper;
So the underlying int can roll over to zero, giving a False when we should have a True. I'm trying to make a class which inherits from npy_int8, then override the addition operators to behave like normal boolean arithmetic (1 + 1 = 1). But I'm having a few problems.
When I try to do something simple like:
class npy_bool_wrapper : public npy_int8 {};
I get an error for that line:
error: expected class-name before '{' token
When I try to implement it like a class template, like in complex_ops.h
template <class c_type, class npy_type>
class bool_wrapper : public npy_type {};
typedef bool_wrapper<int, npy_int8> npy_bool_wrapper;
I get:
error: base type 'signed char' fails to be a struct or class type