Conversation
ax3l
left a comment
There was a problem hiding this comment.
Thank you for digging into this!
I just reminded myself: the issue is that MSVC does a somehow no-standard/weird two-phase name lookup when dealing with C++ templates, which delays almost all template validation until instantiation...
There might be flag for modern MSVC, /permissive- or so, that makes it standard compliant. I think it would be possible for all our toolchains and deployments if we would require this for our code, but the devil is always in the detail, especially when it comes to working with third party include headers, too. We would have to test.
https://learn.microsoft.com/en-us/cpp/overview/visual-cpp-language-conformance?view=msvc-170
https://learn.microsoft.com/en-us/cpp/build/reference/permissive-standards-conformance?view=msvc-170
|
I saw googling somewhere that template standard compliance might be automatic in MSVC once we switch to C++20 #4840. To be seen :D |
This is needed for MSVC, because it does not seem to handle
using MLLinOpT<MF>::setLevelBCcorrectly.Additional background: BLAST-WarpX/warpx#6406