hi have code -
typedef struct signal_declairation{ //these 2001 type declairation bool is_array; int array_start, array_end; port_attribute port_attribute; //port direction string port_type; //logic, udt, wire, accept every thing //this common 2001 , normal string port_name; //dumper method friend ostream& operator<<(ostream &out, signal_declairation &m_signal_declairation); } signal_declairation; std::ostream& operator<< (ostream &out, signal_declairation &m_signal_declairation) { string port_direction; switch(m_signal_declairation.port_attribute){ case input: port_direction = "input"; break; case output: port_direction = "output"; break; case inout: port_direction = "inout"; break; } if(m_signal_declairation.is_array==true){ out << " port name = " << m_signal_declairation.port_name << " port direction = " << m_signal_declairation.port_attribute << " port type = " << m_signal_declairation.port_type << " arrayed port :: array start = " << m_signal_declairation.array_start << " array end = " << m_signal_declairation.array_end ; }else{ out << " port name = " << m_signal_declairation.port_name << " port direction = " << m_signal_declairation.port_attribute << " port type = " << m_signal_declairation.port_type; } return out; } when try , compile, errors -
parser_globals.h: in function ‘std::ostream& operator<<(std::ostream&, signal_declairation&)’: parser_globals.h:53:9: error: no match ‘operator<<’ (operand types ‘std::ostream {aka std::basic_ostream}’ , ‘const char [14]’) out << " port name = " << m_signal_declairation.port_name
not sure why not able pass class members << shown above. can ???? raj
change overload definition :
std::ostream& operator<< (ostream &out, signal_declairation &m_signal_declairation) by std::ostream& operator<< (ostream &out,const signal_declairation &m_signal_declairation) .
dont forget prototype too.
Comments
Post a Comment