23namespace shamrock::solvergraph {
25 class INullOptEdge :
public IEdge {
27 INullOptEdge() :
IEdge() {}
29 virtual std::string _impl_get_dot_label()
const {
return "null_opt_edge"; }
30 virtual std::string _impl_get_tex_symbol()
const {
return "null_opt_edge"; }
34 inline std::shared_ptr<INullOptEdge> make_null_opt_edge() {
35 return std::make_shared<INullOptEdge>();
38 inline bool is_null_opt_edge(
const std::shared_ptr<IEdge> &edge) {
39 return std::dynamic_pointer_cast<INullOptEdge>(edge) !=
nullptr;
43 inline std::shared_ptr<IEdge> obsfucate_null_opt_edge(
const std::optional<T> &edge) {
44 if (edge.has_value()) {
47 return make_null_opt_edge();
virtual void free_alloc()
Free allocated memory.