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 + -
显示快捷键?