根据cppreference的核心常量表达式部分第19点,两个指针之间的减法运算符在之前不是合法的常量表达式。我可以假设以下代码是合法的代码吗?或者这种解释是滥用的吗?
int X, Y;
template <long long V>
struct S { };
int main() {
S<&X - &Y> s;
(void)s;
}