Work around an issue in Teuchos::rcpFromRef() with types only forward declared. #16608
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Specifically, calling
Teuchos::rcpFromRef(T*)
internally callstypeid(T)
which only works ifT
is a complete type. Unfortunately, my MPI library only forward declares the MPI communicator class and makesMPI_Comm
a pointer to this incomplete class. This leads to an error inrcpFromRef()
.It turns out that this is documented, see the documentation of
rcpFromRef()
at https://docs.trilinos.org/dev/packages/teuchos/doc/html/classTeuchos_1_1RCP.html#a6c754d72d6d232c97e38bc359ab6ef82 and the reference torcpFromUndefRef()
there (see https://docs.trilinos.org/dev/packages/teuchos/doc/html/classTeuchos_1_1RCP.html#a823eee3138de3b23dab97b3f37e197f3).