diff --git a/bindings/python/manifold3d.cpp b/bindings/python/manifold3d.cpp index 3f85380d9..b026b9759 100644 --- a/bindings/python/manifold3d.cpp +++ b/bindings/python/manifold3d.cpp @@ -322,10 +322,9 @@ NB_MODULE(manifold3d, m) { std::optional>> &normalIdx) { glm::ivec3 v(0); if (normalIdx.has_value()) { - if (normalIdx.value().ndim() != 1 || - normalIdx.value().shape(0) != 3) + if (normalIdx->ndim() != 1 || normalIdx->shape(0) != 3) throw std::runtime_error("Invalid vector shape, expected (3)"); - auto value = normalIdx.value(); + auto value = *normalIdx; v = glm::ivec3(value(0), value(1), value(2)); } return self.GetMeshGL(v); @@ -624,7 +623,7 @@ NB_MODULE(manifold3d, m) { runOriginalID->size()); if (runTransform.has_value()) { - auto runTransform1 = runTransform.value(); + auto runTransform1 = *runTransform; if (runTransform1.ndim() != 3 || runTransform1.shape(1) != 4 || runTransform1.shape(2) != 3) throw std::runtime_error( @@ -637,7 +636,7 @@ NB_MODULE(manifold3d, m) { out.faceID = toVector(faceID->data(), faceID->size()); if (halfedgeTangent.has_value()) { - auto halfedgeTangent1 = halfedgeTangent.value(); + auto halfedgeTangent1 = *halfedgeTangent; if (halfedgeTangent1.ndim() != 3 || halfedgeTangent1.shape(1) != 3 || halfedgeTangent1.shape(2) != 4) diff --git a/src/manifold/src/csg_tree.cpp b/src/manifold/src/csg_tree.cpp index a7864d9cf..81dd96925 100644 --- a/src/manifold/src/csg_tree.cpp +++ b/src/manifold/src/csg_tree.cpp @@ -82,9 +82,9 @@ using SharedImpl = std::variant, struct GetImplPtr { const Manifold::Impl *operator()(const SharedImpl &p) { if (std::holds_alternative>(p)) { - return std::get>(p).get(); + return std::get_if>(&p)->get(); } else { - return std::get>(p).get(); + return std::get_if>(&p)->get(); } }; }; @@ -495,7 +495,7 @@ std::shared_ptr CsgOpNode::BatchBoolean( group.run_and_wait(process); SharedImpl r; queue.try_pop(r); - return std::get>(r); + return *std::get_if>(&r); } #endif // apply boolean operations starting from smaller meshes