A user reported an error in how we handle execution policy guards in the signed distance API.
Specifically, we're using #ifdef in some cases but should actually be using #ifndef guards.
We might consider using this as an opportunity to clean up this section of the code.
Specifically, should the SignedDistExec::OpenMP enum case be defined in configurations that don't have OpenMP? Or would it be better to avoid this problem by either
A user reported an error in how we handle execution policy guards in the signed distance API. Specifically, we're using
#ifdef
in some cases but should actually be using#ifndef
guards.See https://github.com/LLNL/axom/pull/1191 for a proposed bugfix. (Specifically, the changes to
signed_distance.cpp
)We might consider using this as an opportunity to clean up this section of the code. Specifically, should the
SignedDistExec::OpenMP
enum case be defined in configurations that don't have OpenMP? Or would it be better to avoid this problem by eitherdefining only the valid enum cases for the configuration E.g. something like changing the enum definition from this https://github.com/LLNL/axom/blob/9ea7c93c4b802b4da444727b995e4f02df344b3a/src/axom/quest/interface/signed_distance.hpp#L87-L93 to
or, keeping the enum as it is and adding an
isValid(SignedDistanceExec)
method that can better isolate the checksThis might depend on expectations about how users are using the
SignedDistanceExec
enum.