📄 sc_ufixed.h
字号:
sc_ufixed<W,I,Q,O,N>::sc_ufixed( tp a, \ sc_fxnum_observer* observer_ ) \: sc_ufix( a, W, I, Q, O, N, observer_ ) \{} \ \template<int W, int I, sc_q_mode Q, sc_o_mode O, int N> \inline \sc_ufixed<W,I,Q,O,N>::sc_ufixed( tp a, \ const sc_fxcast_switch& cast_sw, \ sc_fxnum_observer* observer_ ) \: sc_ufix( a, W, I, Q, O, N, cast_sw, observer_ ) \{}DEFN_CTORS_T(int)DEFN_CTORS_T(unsigned int)DEFN_CTORS_T(long)DEFN_CTORS_T(unsigned long)DEFN_CTORS_T(double)DEFN_CTORS_T(const char*)DEFN_CTORS_T(const sc_fxval&)DEFN_CTORS_T(const sc_fxval_fast&)DEFN_CTORS_T(const sc_fxnum&)DEFN_CTORS_T(const sc_fxnum_fast&)#ifndef SC_FX_EXCLUDE_OTHERDEFN_CTORS_T(int64)DEFN_CTORS_T(uint64)DEFN_CTORS_T(const sc_int_base&)DEFN_CTORS_T(const sc_uint_base&)DEFN_CTORS_T(const sc_signed&)DEFN_CTORS_T(const sc_unsigned&)#endif#undef DEFN_CTORS_T// copy constructortemplate<int W, int I, sc_q_mode Q, sc_o_mode O, int N>inlinesc_ufixed<W,I,Q,O,N>::sc_ufixed( const sc_ufixed<W,I,Q,O,N>& a ): sc_ufix( a, W, I, Q, O, N ){}// assignment operatorstemplate<int W, int I, sc_q_mode Q, sc_o_mode O, int N>inlinesc_ufixed<W,I,Q,O,N>&sc_ufixed<W,I,Q,O,N>::operator = ( const sc_ufixed<W,I,Q,O,N>& a ){ sc_ufix::operator = ( a ); return *this;}#define DEFN_ASN_OP_T(op,tp) \template<int W, int I, sc_q_mode Q, sc_o_mode O, int N> \inline \sc_ufixed<W,I,Q,O,N>& \sc_ufixed<W,I,Q,O,N>::operator op ( tp a ) \{ \ sc_ufix::operator op ( a ); \ return *this; \}#ifndef SC_FX_EXCLUDE_OTHER#define DEFN_ASN_OP_OTHER(op) \DEFN_ASN_OP_T(op,int64) \DEFN_ASN_OP_T(op,uint64) \DEFN_ASN_OP_T(op,const sc_int_base&) \DEFN_ASN_OP_T(op,const sc_uint_base&) \DEFN_ASN_OP_T(op,const sc_signed&) \DEFN_ASN_OP_T(op,const sc_unsigned&)#else#define DEFN_ASN_OP_OTHER(op)#endif#define DEFN_ASN_OP(op) \DEFN_ASN_OP_T(op,int) \DEFN_ASN_OP_T(op,unsigned int) \DEFN_ASN_OP_T(op,long) \DEFN_ASN_OP_T(op,unsigned long) \DEFN_ASN_OP_T(op,double) \DEFN_ASN_OP_T(op,const char*) \DEFN_ASN_OP_T(op,const sc_fxval&) \DEFN_ASN_OP_T(op,const sc_fxval_fast&) \DEFN_ASN_OP_T(op,const sc_fxnum&) \DEFN_ASN_OP_T(op,const sc_fxnum_fast&) \DEFN_ASN_OP_OTHER(op)DEFN_ASN_OP(=)DEFN_ASN_OP(*=)DEFN_ASN_OP(/=)DEFN_ASN_OP(+=)DEFN_ASN_OP(-=)DEFN_ASN_OP_T(<<=,int)DEFN_ASN_OP_T(>>=,int)DEFN_ASN_OP_T(&=,const sc_ufix&)DEFN_ASN_OP_T(&=,const sc_ufix_fast&)DEFN_ASN_OP_T(|=,const sc_ufix&)DEFN_ASN_OP_T(|=,const sc_ufix_fast&)DEFN_ASN_OP_T(^=,const sc_ufix&)DEFN_ASN_OP_T(^=,const sc_ufix_fast&)#undef DEFN_ASN_OP_T#undef DEFN_ASN_OP_OTHER#undef DEFN_ASN_OP// auto-increment and auto-decrementtemplate<int W, int I, sc_q_mode Q, sc_o_mode O, int N>inlineconst sc_fxvalsc_ufixed<W,I,Q,O,N>::operator ++ ( int ){ return sc_fxval( sc_ufix::operator ++ ( 0 ) );}template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>inlineconst sc_fxvalsc_ufixed<W,I,Q,O,N>::operator -- ( int ){ return sc_fxval( sc_ufix::operator -- ( 0 ) );}template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>inlinesc_ufixed<W,I,Q,O,N>&sc_ufixed<W,I,Q,O,N>::operator ++ (){ sc_ufix::operator ++ (); return *this;}template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>inlinesc_ufixed<W,I,Q,O,N>&sc_ufixed<W,I,Q,O,N>::operator -- (){ sc_ufix::operator -- (); return *this;}// ----------------------------------------------------------------------------// TEMPLATE CLASS : sc_ufixed_fast//// "Constrained" unsigned fixed-point class; limited precision.// ----------------------------------------------------------------------------template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>inlinesc_ufixed_fast<W,I,Q,O,N>::sc_ufixed_fast( sc_fxnum_fast_observer* observer_ ): sc_ufix_fast( W, I, Q, O, N, observer_ ){}template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>inlinesc_ufixed_fast<W,I,Q,O,N>::sc_ufixed_fast( const sc_fxcast_switch& cast_sw, sc_fxnum_fast_observer* observer_ ): sc_ufix_fast( W, I, Q, O, N, cast_sw, observer_ ){}#define DEFN_CTORS_T(tp) \template<int W, int I, sc_q_mode Q, sc_o_mode O, int N> \inline \sc_ufixed_fast<W,I,Q,O,N>::sc_ufixed_fast( tp a, \ sc_fxnum_fast_observer* observer_ )\: sc_ufix_fast( a, W, I, Q, O, N, observer_ ) \{} \ \template<int W, int I, sc_q_mode Q, sc_o_mode O, int N> \inline \sc_ufixed_fast<W,I,Q,O,N>::sc_ufixed_fast( tp a, \ const sc_fxcast_switch& cast_sw, \ sc_fxnum_fast_observer* observer_ )\: sc_ufix_fast( a, W, I, Q, O, N, cast_sw, observer_ ) \{}DEFN_CTORS_T(int)DEFN_CTORS_T(unsigned int)DEFN_CTORS_T(long)DEFN_CTORS_T(unsigned long)DEFN_CTORS_T(double)DEFN_CTORS_T(const char*)DEFN_CTORS_T(const sc_fxval&)DEFN_CTORS_T(const sc_fxval_fast&)DEFN_CTORS_T(const sc_fxnum&)DEFN_CTORS_T(const sc_fxnum_fast&)#ifndef SC_FX_EXCLUDE_OTHERDEFN_CTORS_T(int64)DEFN_CTORS_T(uint64)DEFN_CTORS_T(const sc_int_base&)DEFN_CTORS_T(const sc_uint_base&)DEFN_CTORS_T(const sc_signed&)DEFN_CTORS_T(const sc_unsigned&)#endif#undef DEFN_CTORS_T// copy constructortemplate<int W, int I, sc_q_mode Q, sc_o_mode O, int N>inlinesc_ufixed_fast<W,I,Q,O,N>::sc_ufixed_fast( const sc_ufixed_fast<W,I,Q,O,N>& a ): sc_ufix_fast( a, W, I, Q, O, N ){}// assignment operatorstemplate<int W, int I, sc_q_mode Q, sc_o_mode O, int N>inlinesc_ufixed_fast<W,I,Q,O,N>&sc_ufixed_fast<W,I,Q,O,N>::operator = ( const sc_ufixed_fast<W,I,Q,O,N>& a ){ sc_ufix_fast::operator = ( a ); return *this;}#define DEFN_ASN_OP_T(op,tp) \template<int W, int I, sc_q_mode Q, sc_o_mode O, int N> \inline \sc_ufixed_fast<W,I,Q,O,N>& \sc_ufixed_fast<W,I,Q,O,N>::operator op ( tp a ) \{ \ sc_ufix_fast::operator op ( a ); \ return *this; \}#ifndef SC_FX_EXCLUDE_OTHER#define DEFN_ASN_OP_OTHER(op) \DEFN_ASN_OP_T(op,int64) \DEFN_ASN_OP_T(op,uint64) \DEFN_ASN_OP_T(op,const sc_int_base&) \DEFN_ASN_OP_T(op,const sc_uint_base&) \DEFN_ASN_OP_T(op,const sc_signed&) \DEFN_ASN_OP_T(op,const sc_unsigned&)#else#define DEFN_ASN_OP_OTHER(op)#endif#define DEFN_ASN_OP(op) \DEFN_ASN_OP_T(op,int) \DEFN_ASN_OP_T(op,unsigned int) \DEFN_ASN_OP_T(op,long) \DEFN_ASN_OP_T(op,unsigned long) \DEFN_ASN_OP_T(op,double) \DEFN_ASN_OP_T(op,const char*) \DEFN_ASN_OP_T(op,const sc_fxval&) \DEFN_ASN_OP_T(op,const sc_fxval_fast&) \DEFN_ASN_OP_T(op,const sc_fxnum&) \DEFN_ASN_OP_T(op,const sc_fxnum_fast&) \DEFN_ASN_OP_OTHER(op)DEFN_ASN_OP(=)DEFN_ASN_OP(*=)DEFN_ASN_OP(/=)DEFN_ASN_OP(+=)DEFN_ASN_OP(-=)DEFN_ASN_OP_T(<<=,int)DEFN_ASN_OP_T(>>=,int)DEFN_ASN_OP_T(&=,const sc_ufix&)DEFN_ASN_OP_T(&=,const sc_ufix_fast&)DEFN_ASN_OP_T(|=,const sc_ufix&)DEFN_ASN_OP_T(|=,const sc_ufix_fast&)DEFN_ASN_OP_T(^=,const sc_ufix&)DEFN_ASN_OP_T(^=,const sc_ufix_fast&)#undef DEFN_ASN_OP_T#undef DEFN_ASN_OP_OTHER#undef DEFN_ASN_OP// auto-increment and auto-decrementtemplate<int W, int I, sc_q_mode Q, sc_o_mode O, int N>inlineconst sc_fxval_fastsc_ufixed_fast<W,I,Q,O,N>::operator ++ ( int ){ return sc_fxval_fast( sc_ufix_fast::operator ++ ( 0 ) );}template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>inlineconst sc_fxval_fastsc_ufixed_fast<W,I,Q,O,N>::operator -- ( int ){ return sc_fxval_fast( sc_ufix_fast::operator -- ( 0 ) );}template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>inlinesc_ufixed_fast<W,I,Q,O,N>&sc_ufixed_fast<W,I,Q,O,N>::operator ++ (){ sc_ufix_fast::operator ++ (); return *this;}template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>inlinesc_ufixed_fast<W,I,Q,O,N>&sc_ufixed_fast<W,I,Q,O,N>::operator -- (){ sc_ufix_fast::operator -- (); return *this;}} // namespace sc_dt#endif// Taf!
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -