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