inline RESULT \
operator OP (
const sc_concatref &
a,
const sc_concatref &
b) \
{ \
return a.value() OP
b.value(); \
} \
SC_CONCAT_OP_TYPE(const sc_signed, OP, int) \
SC_CONCAT_OP_TYPE(const sc_signed, OP, long) \
SC_CONCAT_OP_TYPE(const sc_signed, OP, int64) \
SC_CONCAT_OP_TYPE(RESULT, OP, unsigned int) \
SC_CONCAT_OP_TYPE(RESULT, OP, unsigned long) \
SC_CONCAT_OP_TYPE(RESULT, OP, uint64) \
SC_CONCAT_OP_TYPE(const sc_signed, OP, const sc_int_base &) \
SC_CONCAT_OP_TYPE(RESULT, OP, const sc_uint_base &) \
SC_CONCAT_OP_TYPE(const sc_signed, OP, const sc_signed &) \
SC_CONCAT_OP_TYPE(RESULT, OP, const sc_unsigned &) \
inline RESULT \
operator OP (
const sc_concatref &
a,
bool b) \
{ \
return a.value() OP (
int)
b; \
} \
inline RESULT \
operator OP (
bool a,
const sc_concatref &
b) \
{ \
return (
int)
a OP
b.value(); \
}