sc_unsigned.h

来自「基于4个mips核的noc设计」· C头文件 代码 · 共 1,850 行 · 第 1/5 页

H
1,850
字号
};// l-value concatenation operators and functionstemplate <class T1, class T2>inlinesc_unsigned_concref<sc_unsigned_subref,sc_unsigned_concref<T1,T2> >operator , ( sc_unsigned_subref, sc_unsigned_concref<T1,T2> );inlinesc_unsigned_concref<sc_unsigned_subref,sc_unsigned_bitref>operator , ( sc_unsigned_subref, sc_unsigned_bitref );inlinesc_unsigned_concref<sc_unsigned_subref,sc_unsigned_subref>operator , ( sc_unsigned_subref, sc_unsigned_subref );inlinesc_unsigned_concref<sc_unsigned_subref,sc_unsigned>operator , ( sc_unsigned_subref, sc_unsigned& );template <class T1, class T2>inlinesc_unsigned_concref<sc_unsigned_subref,sc_unsigned_concref<T1,T2> >concat( sc_unsigned_subref, sc_unsigned_concref<T1,T2> );inlinesc_unsigned_concref<sc_unsigned_subref,sc_unsigned_bitref>concat( sc_unsigned_subref, sc_unsigned_bitref );inlinesc_unsigned_concref<sc_unsigned_subref,sc_unsigned_subref>concat( sc_unsigned_subref, sc_unsigned_subref );inlinesc_unsigned_concref<sc_unsigned_subref,sc_unsigned>concat( sc_unsigned_subref, sc_unsigned& );inlineistream&operator >> ( istream&, sc_unsigned_subref& );// ----------------------------------------------------------------------------//  CLASS TEMPLATE : sc_unsigned_concref_r<T1,T2>////  Proxy class for sc_unsigned concatenation (r-value only).//  NOT YET IMPLEMENTED// ----------------------------------------------------------------------------template <class T1, class T2>class sc_unsigned_concref_r{public:    // constructor    sc_unsigned_concref_r( const T1& left_, const T2& right_, int delete_ = 0 )	: m_left( CCAST<T1&>( left_ ) ), m_right( CCAST<T2&>( right_ ) ),	  m_delete( delete_ ), m_refs( *new int( 1 ) )	{ m_len = m_left.length() + m_right.length(); NOT_YET_IMPLEMENTED; }    // copy constructor    sc_unsigned_concref_r( const sc_unsigned_concref_r<T1,T2>& a )	: m_left( a.m_left ), m_right( a.m_right ), m_len( a.m_len ),	  m_delete( a.m_delete ), m_refs( a.m_refs )	{ ++ m_refs; NOT_YET_IMPLEMENTED; }    // destructor    ~sc_unsigned_concref_r();    // cloning    sc_unsigned_concref_r<T1,T2>* clone() const	{ return new sc_unsigned_concref_r<T1,T2>( *this ); }    // capacity    int length() const	{ return m_len; }    // implicit conversion to sc_unsigned    // NOT YET IMPLEMENTED    // explicit conversions    // NOT YET IMPLEMENTED    // explicit conversion to character string    // NOT YET IMPLEMENTED    // other methods    void print( ostream& os = cout ) const	{ NOT_YET_IMPLEMENTED; }protected:    T1&          m_left;    T2&          m_right;    int          m_len;    mutable int  m_delete;    mutable int& m_refs;private:    // disabled    sc_unsigned_concref_r();    sc_unsigned_concref_r<T1,T2>& operator = (	const sc_unsigned_concref_r<T1,T2>& );};// r-value concatenation operators and functionstemplate <class T1, class T2, class T3, class T4>inlinesc_unsigned_concref_r<sc_unsigned_concref_r<T1,T2>,                      sc_unsigned_concref_r<T3,T4> >operator , ( sc_unsigned_concref_r<T1,T2>, sc_unsigned_concref_r<T3,T4> );template <class T1, class T2>inlinesc_unsigned_concref_r<sc_unsigned_concref_r<T1,T2>,sc_unsigned_bitref_r>operator , ( sc_unsigned_concref_r<T1,T2>, sc_unsigned_bitref_r );template <class T1, class T2>inlinesc_unsigned_concref_r<sc_unsigned_concref_r<T1,T2>,sc_unsigned_subref_r>operator , ( sc_unsigned_concref_r<T1,T2>, sc_unsigned_subref_r );template <class T1, class T2>inlinesc_unsigned_concref_r<sc_unsigned_concref_r<T1,T2>,sc_unsigned>operator , ( sc_unsigned_concref_r<T1,T2>, const sc_unsigned& );template <class T1, class T2>inlinesc_unsigned_concref_r<sc_unsigned_concref_r<T1,T2>,sc_unsigned>operator , ( sc_unsigned_concref_r<T1,T2>, bool );template <class T1, class T2>inlinesc_unsigned_concref_r<sc_unsigned,sc_unsigned_concref_r<T1,T2> >operator , ( bool, sc_unsigned_concref_r<T1,T2> );template <class T1, class T2, class T3, class T4>inlinesc_unsigned_concref_r<sc_unsigned_concref_r<T1,T2>,                      sc_unsigned_concref_r<T3,T4> >concat( sc_unsigned_concref_r<T1,T2>, sc_unsigned_concref_r<T3,T4> );template <class T1, class T2>inlinesc_unsigned_concref_r<sc_unsigned_concref_r<T1,T2>,sc_unsigned_bitref_r>concat( sc_unsigned_concref_r<T1,T2>, sc_unsigned_bitref_r );template <class T1, class T2>inlinesc_unsigned_concref_r<sc_unsigned_concref_r<T1,T2>,sc_unsigned_subref_r>concat( sc_unsigned_concref_r<T1,T2>, sc_unsigned_subref_r );template <class T1, class T2>inlinesc_unsigned_concref_r<sc_unsigned_concref_r<T1,T2>,sc_unsigned>concat( sc_unsigned_concref_r<T1,T2>, const sc_unsigned& );template <class T1, class T2>inlinesc_unsigned_concref_r<sc_unsigned_concref_r<T1,T2>,sc_unsigned>concat( sc_unsigned_concref_r<T1,T2>, bool );template <class T1, class T2>inlinesc_unsigned_concref_r<sc_unsigned,sc_unsigned_concref_r<T1,T2> >concat( bool, sc_unsigned_concref_r<T1,T2> );#ifdef SC_DT_MIXED_COMMA_OPERATORStemplate <class T1, class T2, class T3, class T4>inlinesc_unsigned_concref_r<sc_unsigned_concref_r<T1,T2>,                      sc_unsigned_concref_r<T3,T4> >operator , ( sc_unsigned_concref_r<T1,T2>, sc_unsigned_concref<T3,T4> );template <class T1, class T2, class T3, class T4>inlinesc_unsigned_concref_r<sc_unsigned_concref_r<T1,T2>,                      sc_unsigned_concref_r<T3,T4> >operator , ( sc_unsigned_concref<T1,T2>, sc_unsigned_concref_r<T3,T4> );template <class T1, class T2>inlinesc_unsigned_concref_r<sc_unsigned_concref_r<T1,T2>,sc_unsigned_bitref_r>operator , ( sc_unsigned_concref_r<T1,T2>, sc_unsigned_bitref );template <class T1, class T2>inlinesc_unsigned_concref_r<sc_unsigned_concref_r<T1,T2>,sc_unsigned_bitref_r>operator , ( sc_unsigned_concref<T1,T2>, sc_unsigned_bitref_r );template <class T1, class T2>inlinesc_unsigned_concref_r<sc_unsigned_concref_r<T1,T2>,sc_unsigned_subref_r>operator , ( sc_unsigned_concref_r<T1,T2>, sc_unsigned_subref );template <class T1, class T2>inlinesc_unsigned_concref_r<sc_unsigned_concref_r<T1,T2>,sc_unsigned_subref_r>operator , ( sc_unsigned_concref<T1,T2>, sc_unsigned_subref_r );template <class T1, class T2>inlinesc_unsigned_concref_r<sc_unsigned_concref_r<T1,T2>,sc_unsigned>operator , ( sc_unsigned_concref_r<T1,T2>, sc_unsigned& );template <class T1, class T2>inlinesc_unsigned_concref_r<sc_unsigned_concref_r<T1,T2>,sc_unsigned>operator , ( sc_unsigned_concref<T1,T2>, const sc_unsigned& );template <class T1, class T2>inlinesc_unsigned_concref_r<sc_unsigned_concref_r<T1,T2>,sc_unsigned>operator , ( sc_unsigned_concref<T1,T2>, bool );template <class T1, class T2>inlinesc_unsigned_concref_r<sc_unsigned,sc_unsigned_concref_r<T1,T2> >operator , ( bool, sc_unsigned_concref<T1,T2> );template <class T1, class T2, class T3, class T4>inlinesc_unsigned_concref_r<sc_unsigned_concref_r<T1,T2>,                      sc_unsigned_concref_r<T3,T4> >concat( sc_unsigned_concref_r<T1,T2>, sc_unsigned_concref<T3,T4> );template <class T1, class T2, class T3, class T4>inlinesc_unsigned_concref_r<sc_unsigned_concref_r<T1,T2>,                      sc_unsigned_concref_r<T3,T4> >concat( sc_unsigned_concref<T1,T2>, sc_unsigned_concref_r<T3,T4> );template <class T1, class T2>inlinesc_unsigned_concref_r<sc_unsigned_concref_r<T1,T2>,sc_unsigned_bitref_r>concat( sc_unsigned_concref_r<T1,T2>, sc_unsigned_bitref );template <class T1, class T2>inlinesc_unsigned_concref_r<sc_unsigned_concref_r<T1,T2>,sc_unsigned_bitref_r>concat( sc_unsigned_concref<T1,T2>, sc_unsigned_bitref_r );template <class T1, class T2>inlinesc_unsigned_concref_r<sc_unsigned_concref_r<T1,T2>,sc_unsigned_subref_r>concat( sc_unsigned_concref_r<T1,T2>, sc_unsigned_subref );template <class T1, class T2>inlinesc_unsigned_concref_r<sc_unsigned_concref_r<T1,T2>,sc_unsigned_subref_r>concat( sc_unsigned_concref<T1,T2>, sc_unsigned_subref_r );template <class T1, class T2>inlinesc_unsigned_concref_r<sc_unsigned_concref_r<T1,T2>,sc_unsigned>concat( sc_unsigned_concref_r<T1,T2>, sc_unsigned& );template <class T1, class T2>inlinesc_unsigned_concref_r<sc_unsigned_concref_r<T1,T2>,sc_unsigned>concat( sc_unsigned_concref<T1,T2>, const sc_unsigned& );template <class T1, class T2>inlinesc_unsigned_concref_r<sc_unsigned_concref_r<T1,T2>,sc_unsigned>concat( sc_unsigned_concref<T1,T2>, bool );template <class T1, class T2>inlinesc_unsigned_concref_r<sc_unsigned,sc_unsigned_concref_r<T1,T2> >concat( bool, sc_unsigned_concref<T1,T2> );#endiftemplate <class T1, class T2>inlineostream&operator << ( ostream&, const sc_unsigned_concref_r<T1,T2>& );// ----------------------------------------------------------------------------//  CLASS TEMPLATE : sc_unsigned_concref<T1,T2>////  Proxy class for sc_unsigned concatenation (r-value and l-value).//  NOT YET IMPLEMENTED// ----------------------------------------------------------------------------template <class T1, class T2>class sc_unsigned_concref    : public sc_unsigned_concref_r<T1,T2>{public:    // constructor    sc_unsigned_concref( T1& left_, T2& right_, int delete_ = 0 )	: sc_unsigned_concref_r<T1,T2>( left_, right_, delete_ )	{}    // copy constructor    sc_unsigned_concref( const sc_unsigned_concref<T1,T2>& a )	: sc_unsigned_concref_r<T1,T2>( a )	{}    // cloning    sc_unsigned_concref<T1,T2>* clone() const	{ return new sc_unsigned_concref<T1,T2>( *this ); }    // assignment operators    // NOT YET IMPLEMENTED    // other methods    void scan( istream& is = cin )	{ NOT_YET_IMPLEMENTED; }private:    // disabled    sc_unsigned_concref();};// l-value concatenation operators and functionstemplate <class T1, class T2, class T3, class T4>inlinesc_unsigned_concref<sc_unsigned_concref<T1,T2>,sc_unsigned_concref<T3,T4> >operator , ( sc_unsigned_concref<T1,T2>, sc_unsigned_concref<T3,T4> );template <class T1, class T2>inlinesc_unsigned_concref<sc_unsigned_concref<T1,T2>,sc_unsigned_bitref>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?