diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el index 29dff4a..cadbe2f 100644 --- a/lisp/progmodes/cc-langs.el +++ b/lisp/progmodes/cc-langs.el @@ -973,7 +973,7 @@ since CC Mode treats every identifier as an expression." ;; Unary. (prefix "++" "--" "+" "-" "!" "~" - ,@(when (c-major-mode-is 'c++-mode) '("not" "compl")) + ,@(when (c-major-mode-is 'c++-mode) '("not" "compl" "alignof" "decltype")) ,@(when (c-major-mode-is '(c-mode c++-mode)) '("*" "&" "sizeof" "??-")) ,@(when (c-major-mode-is 'objc-mode) @@ -1606,7 +1606,7 @@ the appropriate place for that." '("_Bool" "_Complex" "_Imaginary") ; Conditionally defined in C99. (c-lang-const c-primitive-type-kwds)) c++ (append - '("bool" "wchar_t") + '("bool" "wchar_t" "char16_t" "char32_t") (c-lang-const c-primitive-type-kwds)) ;; Objective-C extends C, but probably not the new stuff in C99. objc (append @@ -1676,7 +1676,7 @@ but they don't build a type of themselves. Unlike the keywords on not the type face." t nil c '("const" "restrict" "volatile") - c++ '("const" "volatile" "throw") + c++ '("const" "constexpr" "volatile" "throw" "thread_local") objc '("const" "volatile")) (c-lang-defconst c-opt-type-modifier-key @@ -2308,8 +2308,12 @@ This construct is \" :\"." (c-lang-defconst c-constant-kwds "Keywords for constants." t nil - (c c++) '("NULL" ;; Not a keyword, but practically works as one. + c '("NULL" ;; Not a keyword, but practically works as one. "false" "true") ; Defined in C99. + c++ '("NULL" ;; Not a keyword, but practically works as one. Kept for + ;; older code that doesn't use C++11's nullptr. + "false" "true" + "nullptr") objc '("nil" "Nil" "YES" "NO" "NS_DURING" "NS_HANDLER" "NS_ENDHANDLER") idl '("TRUE" "FALSE") java '("true" "false" "null") ; technically "literals", not keywords