[英]Is difference between two pointers legal c++17 constant expression?
根據cppreference部分核心常量表達式指出19)兩個指針之間的減法運算符不是合法的常量表達式, 直到c ++ 14 。 我可以假設以下代碼是合法的c ++ 17代碼或者這種解釋是濫用嗎?
int X, Y;
template <long long V>
struct S { };
int main() {
S<&X - &Y> s;
(void)s;
}
這個問題沒有實際意義。 指針算術只在屬於同一個數組的指針上定義,當然不是那種情況。 所以,上面的代碼不是合法的C ++,實際上,無法使用我可用的編譯器進行編譯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.