class OdimVisitor {
public:
protected:
};
if (type == OdimH5v20::OBJECT_PVOL) {
visit(o);
}
else {
visit(*obj);
}
}
#include <iostream>
class ConcreteOdimVisitor : public OdimVisitor {
private:
std::ostream& out;
public:
ConcreteOdimVisitor(std::ostream& out) : out(out) {}
protected:
throw std::logic_error(
"Tipo non supportato: " + obj.
getObject());
}
out << "Trovato un volume polare" << std::endl;
}
};
int main(int argc, const char** argv)
{
ConcreteOdimVisitor visitor(std::cout);
try {
visitor(object);
} catch (const std::exception& e) {
std::cerr << e.what() << std::endl;
}
return 0;
}