Minsky
minsky::anonymous_namespace{operation.cc}::CheckConsistent Struct Reference
Inheritance diagram for minsky::anonymous_namespace{operation.cc}::CheckConsistent:
Inheritance graph
Collaboration diagram for minsky::anonymous_namespace{operation.cc}::CheckConsistent:
Collaboration graph

Public Member Functions

 CheckConsistent (const Item &item)
 
- Public Member Functions inherited from minsky::Units
 Units ()
 
 Units (const std::string &)
 
std::string str () const
 
std::string latexStr () const
 insert braces around exponents for LaTeX processing More...
 
void normalise ()
 

Detailed Description

Definition at line 372 of file operation.cc.

Constructor & Destructor Documentation

◆ CheckConsistent()

minsky::anonymous_namespace{operation.cc}::CheckConsistent::CheckConsistent ( const Item item)
inline

Definition at line 374 of file operation.cc.

References minsky::Item::ports(), minsky::Item::portsSize(), minsky::str(), and minsky::Item::throw_error().

375  {
376  bool inputFound=false;
377  for (size_t i=1; i<item.portsSize(); ++i)
378  for (auto w: item.ports(i).lock()->wires())
379  if (inputFound)
380  {
381  auto tmp=w->units(true);
382  if (tmp!=*this)
383  item.throw_error("incompatible units: "+tmp.str()+"≠"+str());
384  }
385  else
386  {
387  inputFound=true;
388  Units::operator=(w->units(true));
389  }
390  }
std::string str() const
Definition: variableType.cc:33
Here is the call graph for this function:

The documentation for this struct was generated from the following file: