Hi,
I’m having some issue with “opaque struct” being instantiated by Clang on unused reference arguments that have template types (that’s an annoyance but not the topic of this email). I assume Clang decide to be lazy on the instantiation of unused arguments to save compile time.
But now I am wondering if that is actually a legal behavior in C++.
For example, the following code does not trigger the static_assert:
template
struct test {
static_assert(N == 42);
};
int foo(test<69> &a) {
return 0;
}
Is that expected/desired behavior? (if you add “a = a;” then it will properly trigger it)