diff options
author | Adam Stankiewicz <sheerun@sher.pl> | 2016-12-20 20:57:20 +0100 |
---|---|---|
committer | Adam Stankiewicz <sheerun@sher.pl> | 2016-12-20 20:57:20 +0100 |
commit | e404a658b1647fad396a954776eda0bdabf8353c (patch) | |
tree | fcdab0e324fd72015ba656e43bd8f8c243030c14 /after/syntax/cpp.vim | |
parent | 74652b465d7eff97070001317a4ea5557717378d (diff) | |
download | vim-polyglot-e404a658b1647fad396a954776eda0bdabf8353c.tar.gz vim-polyglot-e404a658b1647fad396a954776eda0bdabf8353c.zip |
Update
Diffstat (limited to 'after/syntax/cpp.vim')
-rw-r--r-- | after/syntax/cpp.vim | 1475 |
1 files changed, 1029 insertions, 446 deletions
diff --git a/after/syntax/cpp.vim b/after/syntax/cpp.vim index 4560b0ca..99d9f18e 100644 --- a/after/syntax/cpp.vim +++ b/after/syntax/cpp.vim @@ -4,16 +4,17 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'c++11') == -1 " Language: C++ Additions " Maintainer: Jon Haggblad <jon@haeggblad.com> " URL: http://www.haeggblad.com -" Last Change: 21 Sep 2014 -" Version: 0.5 +" Last Change: 12 Oct 2016 +" Version: 0.6 " Changelog: " 0.1 - initial version. " 0.2 - C++14 " 0.3 - Incorporate lastest changes from Mizuchi/STL-Syntax " 0.4 - Add template function highlight " 0.5 - Redo template function highlight to be more robust. Add options. +" 0.6 - more C++14, C++17, library concepts " -" Additional Vim syntax highlighting for C++ (including C++11/14) +" Additional Vim syntax highlighting for C++ (including C++11/14/17) " " This file contains additional syntax highlighting that I use for C++11/14 " development in Vim. Compared to the standard syntax highlighting for C++ it @@ -21,17 +22,17 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'c++11') == -1 " in the standard library / boost. " " Based on: -" http://stackoverflow.com/questions/736701/class-function-names-highlighting-in-vim +" http://stackoverflow.com/q/736701 " http://www.vim.org/scripts/script.php?script_id=4293 " http://www.vim.org/scripts/script.php?script_id=2224 " http://www.vim.org/scripts/script.php?script_id=1640 " http://www.vim.org/scripts/script.php?script_id=3064 + " ----------------------------------------------------------------------------- " Highlight Class and Function names. " -" Based on the discussion in: -" http://stackoverflow.com/questions/736701/class-function-names-highlighting-in-vim +" Based on the discussion in: http://stackoverflow.com/q/736701 " ----------------------------------------------------------------------------- " Functions @@ -41,51 +42,62 @@ hi def link cCustomFunc Function " Class and namespace scope if exists('g:cpp_class_scope_highlight') && g:cpp_class_scope_highlight - syn match cCustomScope "::" - syn match cCustomClass "\w\+\s*::" - \contains=cCustomScope - " hi def link cCustomClass Function " disabled for now - syn match cCustomClass "\<\u\w*\s*\>" + syn match cCustomScope "::" + syn match cCustomClass "\w\+\s*::" + \ contains=cCustomScope + hi def link cCustomClass Function endif -" Template functions -if exists('g:cpp_experimental_template_highlight') && g:cpp_experimental_template_highlight - - syn match cCustomAngleBracketStart "<\_[^;()]\{-}>" contained - \contains=cCustomAngleBracketStart, cCustomAngleBracketEnd +" Template functions. +" Naive implementation that sorta works in most cases. Should correctly +" highlight everything in test/color2.cpp +if exists('g:cpp_experimental_simple_template_highlight') && g:cpp_experimental_simple_template_highlight + syn region cCustomAngleBrackets matchgroup=AngleBracketContents start="\v%(<operator\_s*)@<!%(%(\_i|template\_s*)@<=\<[<=]@!|\<@<!\<[[:space:]<=]@!)" end='>' contains=@cppSTLgroup,cppStructure,cType,cCustomClass,cCustomAngleBrackets,cNumbers + syn match cCustomBrack "<\|>" contains=cCustomAngleBrackets + syn match cCustomTemplateFunc "\w\+\s*<.*>(\@=" contains=cCustomBrack,cCustomAngleBrackets + hi def link cCustomTemplateFunc Function + +" Template functions (alternative faster parsing). +" More sophisticated implementation that should be faster but doesn't always +" correctly highlight inside template arguments. Should correctly +" highlight everything in test/color.cpp +elseif exists('g:cpp_experimental_template_highlight') && g:cpp_experimental_template_highlight + + syn match cCustomAngleBracketStart "<\_[^;()]\{-}>" contained + \ contains=cCustomAngleBracketStart,cCustomAngleBracketEnd hi def link cCustomAngleBracketStart cCustomAngleBracketContent - syn match cCustomAngleBracketEnd ">\_[^<>;()]\{-}>" contained - \contains=cCustomAngleBracketEnd + syn match cCustomAngleBracketEnd ">\_[^<>;()]\{-}>" contained + \ contains=cCustomAngleBracketEnd hi def link cCustomAngleBracketEnd cCustomAngleBracketContent - syn match cCustomTemplateFunc "\<\l\w*\s*<\_[^;()]\{-}>(\@="hs=s,he=e-1 - \contains=cCustomAngleBracketStart + syn match cCustomTemplateFunc "\<\l\w*\s*<\_[^;()]\{-}>(\@="hs=s,he=e-1 + \ contains=cCustomAngleBracketStart hi def link cCustomTemplateFunc cCustomFunc - syn match cCustomTemplateClass "\<\w\+\s*<\_[^;()]\{-}>" - \contains=cCustomAngleBracketStart,cCustomTemplateFunc + syn match cCustomTemplateClass "\<\w\+\s*<\_[^;()]\{-}>" + \ contains=cCustomAngleBracketStart,cCustomTemplateFunc hi def link cCustomTemplateClass cCustomClass " Remove 'template' from cppStructure and use a custom match - syn clear cppStructure + syn clear cppStructure syn keyword cppStructure class typename namespace - syn match cCustomTemplate "\<template\>" + syn match cCustomTemplate "\<template\>" hi def link cCustomTemplate cppStructure - syn match cTemplateDeclare "\<template\_s*<\_[^;()]\{-}>" - \contains=cppStructure,cCustomTemplate,cCustomAngleBracketStart + syn match cTemplateDeclare "\<template\_s*<\_[^;()]\{-}>" + \ contains=cppStructure,cCustomTemplate,cCustomAngleBracketStart " Remove 'operator' from cppStructure and use a custom match - syn clear cppOperator + syn clear cppOperator syn keyword cppOperator typeid syn keyword cppOperator and bitor or xor compl bitand and_eq or_eq xor_eq not not_eq - syn match cCustomOperator "\<operator\>" + syn match cCustomOperator "\<operator\>" hi def link cCustomOperator cppStructure - syn match cTemplateOperatorDeclare "\<operator\_s*<\_[^;()]\{-}>[<>]=\?" - \contains=cppOperator,cCustomOperator,cCustomAngleBracketStart + syn match cTemplateOperatorDeclare "\<operator\_s*<\_[^;()]\{-}>[<>]=\?" + \ contains=cppOperator,cCustomOperator,cCustomAngleBracketStart endif " Alternative syntax that is used in: @@ -96,16 +108,18 @@ endif " Cluster for all the stdlib functions defined below syn cluster cppSTLgroup contains=cppSTLfunction,cppSTLfunctional,cppSTLconstant,cppSTLnamespace,cppSTLtype,cppSTLexception,cppSTLiterator,cppSTLiterator_tagcppSTLenumcppSTLioscppSTLcast + " ----------------------------------------------------------------------------- " Standard library types and functions. " -" Mainly based on the excellent STL Syntax vim script by +" Mainly based on the excellent STL Syntax vim script by " Mizuchi <ytj000@gmail.com> " http://www.vim.org/scripts/script.php?script_id=4293 " which in turn is based on the scripts " http://www.vim.org/scripts/script.php?script_id=2224 " http://www.vim.org/scripts/script.php?script_id=1640 " ----------------------------------------------------------------------------- + syntax keyword cppSTLconstant badbit syntax keyword cppSTLconstant cerr syntax keyword cppSTLconstant cin @@ -597,6 +611,7 @@ syntax keyword cppSTLiterator_tag output_iterator_tag syntax keyword cppSTLiterator_tag random_access_iterator_tag syntax keyword cppSTLnamespace rel_ops syntax keyword cppSTLnamespace std +syntax keyword cppSTLnamespace experimental syntax keyword cppSTLtype allocator syntax keyword cppSTLtype auto_ptr syntax keyword cppSTLtype basic_filebuf @@ -794,228 +809,26 @@ syntax keyword cppSTLconstant WEOF syntax keyword cppSTLconstant WCHAR_MIN syntax keyword cppSTLconstant WCHAR_MAX + if !exists("cpp_no_cpp11") - syntax keyword cppSTLtype nullptr_t max_align_t - syntax keyword cppSTLtype type_index syntax keyword cppSTLconstant nullptr - " type_traits - syntax keyword cppSTLtype is_void - syntax keyword cppSTLtype is_integral - syntax keyword cppSTLtype is_floating_point - syntax keyword cppSTLtype is_array - syntax keyword cppSTLtype is_enum - syntax keyword cppSTLtype is_union - syntax keyword cppSTLtype is_class - syntax keyword cppSTLtype is_function - syntax keyword cppSTLtype is_pointer - syntax keyword cppSTLtype is_lvalue_reference - syntax keyword cppSTLtype is_rvalue_reference - syntax keyword cppSTLtype is_member_object_pointer - syntax keyword cppSTLtype is_member_function_pointer - syntax keyword cppSTLtype is_fundamental - syntax keyword cppSTLtype is_arithmetic - syntax keyword cppSTLtype is_scalar - syntax keyword cppSTLtype is_object - syntax keyword cppSTLtype is_compound - syntax keyword cppSTLtype is_reference - syntax keyword cppSTLtype is_member_pointer - syntax keyword cppSTLtype is_const - syntax keyword cppSTLtype is_volatile - syntax keyword cppSTLtype is_trivial - syntax keyword cppSTLtype is_trivially_copyable - syntax keyword cppSTLtype is_standard_layout - syntax keyword cppSTLtype is_pod - syntax keyword cppSTLtype is_literal_type - syntax keyword cppSTLtype is_empty - syntax keyword cppSTLtype is_polymorphic - syntax keyword cppSTLtype is_abstract - syntax keyword cppSTLtype is_signed - syntax keyword cppSTLtype is_unsigned - syntax keyword cppSTLtype is_constructible - syntax keyword cppSTLtype is_trivially_constructible - syntax keyword cppSTLtype is_nothrow_constructible - syntax keyword cppSTLtype is_default_constructible - syntax keyword cppSTLtype is_trivially_default_constructible - syntax keyword cppSTLtype is_nothrow_default_constructible - syntax keyword cppSTLtype is_copy_constructible - syntax keyword cppSTLtype is_trivially_copy_constructible - syntax keyword cppSTLtype is_nothrow_copy_constructible - syntax keyword cppSTLtype is_move_constructible - syntax keyword cppSTLtype is_trivially_move_constructible - syntax keyword cppSTLtype is_nothrow_move_constructible - syntax keyword cppSTLtype is_assignable - syntax keyword cppSTLtype is_trivially_assignable - syntax keyword cppSTLtype is_nothrow_assignable - syntax keyword cppSTLtype is_copy_assignable - syntax keyword cppSTLtype is_trivially_copy_assignable - syntax keyword cppSTLtype is_nothrow_copy_assignable - syntax keyword cppSTLtype is_move_assignable - syntax keyword cppSTLtype is_trivially_move_assignable - syntax keyword cppSTLtype is_nothrow_move_assignable - syntax keyword cppSTLtype is_destructible - syntax keyword cppSTLtype is_trivially_destructible - syntax keyword cppSTLtype alignment_of - syntax keyword cppSTLtype rank - syntax keyword cppSTLtype extent - syntax keyword cppSTLtype is_same - syntax keyword cppSTLtype is_base_of - syntax keyword cppSTLtype is_convertible - syntax keyword cppSTLtype remove_cv - syntax keyword cppSTLtype remove_const - syntax keyword cppSTLtype remove_volatile - syntax keyword cppSTLtype add_cv - syntax keyword cppSTLtype add_const - syntax keyword cppSTLtype add_volatile - syntax keyword cppSTLtype remove_reference - syntax keyword cppSTLtype add_lvalue_reference - syntax keyword cppSTLtype add_rvalue_reference - syntax keyword cppSTLtype remove_pointer - syntax keyword cppSTLtype add_pointer - syntax keyword cppSTLtype make_signed - syntax keyword cppSTLtype make_unsigned - syntax keyword cppSTLtype remove_extent - syntax keyword cppSTLtype remove_all_extents - syntax keyword cppSTLtype aligned_storage - syntax keyword cppSTLtype aligned_union - syntax keyword cppSTLtype decay - syntax keyword cppSTLtype enable_if - syntax keyword cppSTLtype conditional - syntax keyword cppSTLtype common_type - syntax keyword cppSTLtype underlying_type - syntax keyword cppSTLtype result_of - syntax keyword cppSTLtype integral_constant - syntax keyword cppSTLtype true_type - syntax keyword cppSTLtype false_type - syntax keyword cppSTLfunction declval - - syntax keyword cppSTLconstant piecewise_construct - syntax keyword cppSTLtype piecewise_construct_t - - " memory - syntax keyword cppSTLtype unique_ptr - syntax keyword cppSTLtype shared_ptr - syntax keyword cppSTLtype weak_ptr - syntax keyword cppSTLtype owner_less - syntax keyword cppSTLtype enable_shared_from_this - syntax keyword cppSTLexception bad_weak_ptr - syntax keyword cppSTLtype default_delete - syntax keyword cppSTLtype allocator_traits - syntax keyword cppSTLtype allocator_type - syntax keyword cppSTLtype allocator_arg_t - syntax keyword cppSTLconstant allocator_arg - syntax keyword cppSTLtype uses_allocator - syntax keyword cppSTLtype scoped_allocator_adaptor - syntax keyword cppSTLfunction declare_reachable - syntax keyword cppSTLfunction undeclare_reachable - syntax keyword cppSTLfunction declare_no_pointers - syntax keyword cppSTLfunction undeclare_no_pointers - syntax keyword cppSTLfunction get_pointer_safety - syntax keyword cppSTLtype pointer_safety - syntax keyword cppSTLtype pointer_traits - syntax keyword cppSTLfunction addressof - syntax keyword cppSTLfunction align - syntax keyword cppSTLfunction make_shared - syntax keyword cppSTLfunction allocate_shared - syntax keyword cppSTLcast static_pointer_cast - syntax keyword cppSTLcast dynamic_pointer_cast - syntax keyword cppSTLcast const_pointer_cast - syntax keyword cppSTLfunction get_deleter - - " function object - syntax keyword cppSTLfunction bind - syntax keyword cppSTLtype is_bind_expression - syntax keyword cppSTLtype is_placeholder - syntax keyword cppSTLconstant _1 _2 _3 _4 _5 _6 _7 _8 _9 - syntax keyword cppSTLfunction mem_fn - syntax keyword cppSTLfunctional function - syntax keyword cppSTLexception bad_function_call - syntax keyword cppSTLtype reference_wrapper - syntax keyword cppSTLfunction ref cref - - " bitset - syntax keyword cppSTLfunction all - syntax keyword cppSTLfunction to_ullong - - " iterator - syntax keyword cppSTLiterator move_iterator - syntax keyword cppSTLfunction make_move_iterator - syntax keyword cppSTLfunction next prev - - " program support utilities - syntax keyword cppSTLfunction quick_exit - syntax keyword cppSTLfunction _Exit - syntax keyword cppSTLfunction at_quick_exit - syntax keyword cppSTLfunction forward - - " date and time - syntax keyword cppSTLnamespace chrono - syntax keyword cppSTLtype duration - syntax keyword cppSTLtype system_clock - syntax keyword cppSTLtype steady_clock - syntax keyword cppSTLtype high_resolution_clock - syntax keyword cppSTLtype time_point - syntax keyword cppSTLcast duration_cast - syntax keyword cppSTLcast time_point_cast - - " tuple - syntax keyword cppSTLtype tuple - syntax keyword cppSTLfunction make_tuple - syntax keyword cppSTLfunction tie - syntax keyword cppSTLfunction forward_as_tuple - syntax keyword cppSTLfunction tuple_cat - syntax keyword cppSTLtype tuple_size tuple_element - - " Container + " containers (array, vector, list, *map, *set, ...) syntax keyword cppSTLtype array - syntax keyword cppSTLtype forward_list - syntax keyword cppSTLtype unordered_map - syntax keyword cppSTLtype unordered_set - syntax keyword cppSTLtype unordered_multimap - syntax keyword cppSTLtype unordered_multiset - syntax keyword cppSTLtype tuple - syntax keyword cppSTLfunction cbegin - syntax keyword cppSTLfunction cend - syntax keyword cppSTLfunction crbegin - syntax keyword cppSTLfunction crend + syntax keyword cppSTLfunction cbegin cend + syntax keyword cppSTLfunction crbegin crend syntax keyword cppSTLfunction shrink_to_fit syntax keyword cppSTLfunction emplace syntax keyword cppSTLfunction emplace_back syntax keyword cppSTLfunction emplace_front syntax keyword cppSTLfunction emplace_hint - "forward_list - syntax keyword cppSTLfunction before_begin - syntax keyword cppSTLfunction cbefore_begin - syntax keyword cppSTLfunction insert_after - syntax keyword cppSTLfunction emplace_after - syntax keyword cppSTLfunction erase_after - syntax keyword cppSTLfunction splice_after - - " unordered - syntax keyword cppSTLtype hash - syntax keyword cppSTLtype hasher - syntax keyword cppSTLtype key_equal - syntax keyword cppSTLiterator local_iterator - syntax keyword cppSTLiterator const_local_iterator - syntax keyword cppSTLfunction bucket_count - syntax keyword cppSTLfunction max_bucket_count - syntax keyword cppSTLfunction bucket_size - syntax keyword cppSTLfunction bucket - syntax keyword cppSTLfunction load_factor - syntax keyword cppSTLfunction max_load_factor - syntax keyword cppSTLfunction rehash - syntax keyword cppSTLfunction reserve - syntax keyword cppSTLfunction hash_function - syntax keyword cppSTLfunction key_eq - " algorithm syntax keyword cppSTLfunction all_of any_of none_of syntax keyword cppSTLfunction find_if_not syntax keyword cppSTLfunction copy_if syntax keyword cppSTLfunction copy_n syntax keyword cppSTLfunction move - syntax keyword cppSTLfunction move_if_noexcept syntax keyword cppSTLfunction move_backward syntax keyword cppSTLfunction shuffle syntax keyword cppSTLfunction is_partitioned @@ -1023,13 +836,309 @@ if !exists("cpp_no_cpp11") syntax keyword cppSTLfunction partition_point syntax keyword cppSTLfunction is_sorted syntax keyword cppSTLfunction is_sorted_until + syntax keyword cppSTLfunction is_heap syntax keyword cppSTLfunction is_heap_until syntax keyword cppSTLfunction minmax syntax keyword cppSTLfunction minmax_element syntax keyword cppSTLfunction is_permutation syntax keyword cppSTLfunction itoa - " numerics + " atomic + syntax keyword cppSTLtype atomic + syntax keyword cppSTLtype atomic_flag + syntax keyword cppSTLtype atomic_bool + syntax keyword cppSTLtype atomic_char + syntax keyword cppSTLtype atomic_schar + syntax keyword cppSTLtype atomic_uchar + syntax keyword cppSTLtype atomic_short + syntax keyword cppSTLtype atomic_ushort + syntax keyword cppSTLtype atomic_int + syntax keyword cppSTLtype atomic_uint + syntax keyword cppSTLtype atomic_long + syntax keyword cppSTLtype atomic_ulong + syntax keyword cppSTLtype atomic_llong + syntax keyword cppSTLtype atomic_ullong + syntax keyword cppSTLtype atomic_char16_t + syntax keyword cppSTLtype atomic_char32_t + syntax keyword cppSTLtype atomic_wchar_t + syntax keyword cppSTLtype atomic_int_least8_t + syntax keyword cppSTLtype atomic_uint_least8_t + syntax keyword cppSTLtype atomic_int_least16_t + syntax keyword cppSTLtype atomic_uint_least16_t + syntax keyword cppSTLtype atomic_int_least32_t + syntax keyword cppSTLtype atomic_uint_least32_t + syntax keyword cppSTLtype atomic_int_least64_t + syntax keyword cppSTLtype atomic_uint_least64_t + syntax keyword cppSTLtype atomic_int_fast8_t + syntax keyword cppSTLtype atomic_uint_fast8_t + syntax keyword cppSTLtype atomic_int_fast16_t + syntax keyword cppSTLtype atomic_uint_fast16_t + syntax keyword cppSTLtype atomic_int_fast32_t + syntax keyword cppSTLtype atomic_uint_fast32_t + syntax keyword cppSTLtype atomic_int_fast64_t + syntax keyword cppSTLtype atomic_uint_fast64_t + syntax keyword cppSTLtype atomic_intptr_t + syntax keyword cppSTLtype atomic_uintptr_t + syntax keyword cppSTLtype atomic_size_t + syntax keyword cppSTLtype atomic_ptrdiff_t + syntax keyword cppSTLtype atomic_intmax_t + syntax keyword cppSTLtype atomic_uintmax_t + syntax keyword cppSTLconstant ATOMIC_FLAG_INIT + syntax keyword cppSTLenum memory_order + syntax keyword cppSTLfunction is_lock_free + syntax keyword cppSTLfunction compare_exchange_weak + syntax keyword cppSTLfunction compare_exchange_strong + syntax keyword cppSTLfunction fetch_add + syntax keyword cppSTLfunction fetch_sub + syntax keyword cppSTLfunction fetch_and + syntax keyword cppSTLfunction fetch_or + syntax keyword cppSTLfunction fetch_xor + syntax keyword cppSTLfunction atomic_is_lock_free + syntax keyword cppSTLfunction atomic_store + syntax keyword cppSTLfunction atomic_store_explicit + syntax keyword cppSTLfunction atomic_load + syntax keyword cppSTLfunction atomic_load_explicit + syntax keyword cppSTLfunction atomic_exchange + syntax keyword cppSTLfunction atomic_exchange_explicit + syntax keyword cppSTLfunction atomic_compare_exchange_weak + syntax keyword cppSTLfunction atomic_compare_exchange_weak_explicit + syntax keyword cppSTLfunction atomic_compare_exchange_strong + syntax keyword cppSTLfunction atomic_compare_exchange_strong_explicit + syntax keyword cppSTLfunction atomic_fetch_add + syntax keyword cppSTLfunction atomic_fetch_add_explicit + syntax keyword cppSTLfunction atomic_fetch_sub + syntax keyword cppSTLfunction atomic_fetch_sub_explicit + syntax keyword cppSTLfunction atomic_fetch_and + syntax keyword cppSTLfunction atomic_fetch_and_explicit + syntax keyword cppSTLfunction atomic_fetch_or + syntax keyword cppSTLfunction atomic_fetch_or_explicit + syntax keyword cppSTLfunction atomic_fetch_xor + syntax keyword cppSTLfunction atomic_fetch_xor_explicit + syntax keyword cppSTLfunction atomic_flag_test_and_set + syntax keyword cppSTLfunction atomic_flag_test_and_set_explicit + syntax keyword cppSTLfunction atomic_flag_clear + syntax keyword cppSTLfunction atomic_flag_clear_explicit + syntax keyword cppSTLfunction atomic_init + syntax keyword cppSTLfunction ATOMIC_VAR_INIT + syntax keyword cppSTLfunction kill_dependency + syntax keyword cppSTLfunction atomic_thread_fence + syntax keyword cppSTLfunction atomic_signal_fence + syntax keyword cppSTLfunction exchange + " syntax keyword cppSTLfunction store + " syntax keyword cppSTLfunction load + + " bitset + syntax keyword cppSTLfunction to_ullong + " syntax keyword cppSTLfunction all + + " cinttypes + syntax keyword cppSTLfunction strtoimax + syntax keyword cppSTLfunction strtoumax + syntax keyword cppSTLfunction wcstoimax + syntax keyword cppSTLfunction wcstoumax + + " chrono + syntax keyword cppSTLnamespace chrono + syntax keyword cppSTLcast duration_cast + syntax keyword cppSTLcast time_point_cast + syntax keyword cppSTLtype duration + syntax keyword cppSTLtype system_clock + syntax keyword cppSTLtype steady_clock + syntax keyword cppSTLtype high_resolution_clock + syntax keyword cppSTLtype time_point + syntax keyword cppSTLtype nanoseconds + syntax keyword cppSTLtype microseconds + syntax keyword cppSTLtype milliseconds + syntax keyword cppSTLtype seconds + syntax keyword cppSTLtype minutes + syntax keyword cppSTLtype hours + syntax keyword cppSTLtype treat_as_floating_point + syntax keyword cppSTLtype duration_values + " syntax keyword cppSTLtype rep period + syntax keyword cppSTLfunction time_since_epoch + syntax keyword cppSTLfunction to_time_t + syntax keyword cppSTLfunction from_time_t + " syntax keyword cppSTLfunction zero + " syntax keyword cppSTLfunction now + + " complex + " syntax keyword cppSTLfunction proj + + " condition_variable + syntax keyword cppSTLtype condition_variable + syntax keyword cppSTLfunction notify_all + syntax keyword cppSTLfunction notify_one + + " cstddef + syntax keyword cppSTLtype nullptr_t max_align_t + + " cstdlib + syntax keyword cppSTLfunction quick_exit + syntax keyword cppSTLfunction _Exit + syntax keyword cppSTLfunction at_quick_exit + + " cuchar + syntax keyword cppSTLfunction mbrtoc16 + syntax keyword cppSTLfunction c16rtomb + syntax keyword cppSTLfunction mbrtoc32 + syntax keyword cppSTLfunction c32rtomb + + " exception + syntax keyword cppSTLtype exception_ptr + syntax keyword cppSTLtype nested_exception + syntax keyword cppSTLfunction get_terminate + syntax keyword cppSTLfunction make_exception_ptr + syntax keyword cppSTLfunction current_exception + syntax keyword cppSTLfunction rethrow_exception + syntax keyword cppSTLfunction throw_with_nested + syntax keyword cppSTLfunction rethrow_if_nested + syntax keyword cppSTLfunction rethrow_nested + + " forward_list + syntax keyword cppSTLtype forward_list + syntax keyword cppSTLfunction before_begin + syntax keyword cppSTLfunction cbefore_begin + syntax keyword cppSTLfunction insert_after + syntax keyword cppSTLfunction emplace_after + syntax keyword cppSTLfunction erase_after + syntax keyword cppSTLfunction splice_after + + " functional + syntax keyword cppSTLexception bad_function_call + syntax keyword cppSTLfunctional function + syntax keyword cppSTLconstant _1 _2 _3 _4 _5 _6 _7 _8 _9 + syntax keyword cppSTLtype hash + syntax keyword cppSTLtype is_bind_expression + syntax keyword cppSTLtype is_placeholder + syntax keyword cppSTLtype reference_wrapper + syntax keyword cppSTLfunction bind + syntax keyword cppSTLfunction mem_fn + syntax keyword cppSTLfunction ref cref + + " future + syntax keyword cppSTLtype future + syntax keyword cppSTLtype packaged_task + syntax keyword cppSTLtype promise + syntax keyword cppSTLtype shared_future + syntax keyword cppSTLenum future_status + syntax keyword cppSTLenum future_errc + syntax keyword cppSTLenum launch + syntax keyword cppSTLexception future_error + syntax keyword cppSTLfunction get_future + syntax keyword cppSTLfunction set_value + syntax keyword cppSTLfunction set_value_at_thread_exit + syntax keyword cppSTLfunction set_exception + syntax keyword cppSTLfunction set_exception_at_thread_exit + syntax keyword cppSTLfunction wait_for + syntax keyword cppSTLfunction wait_until + syntax keyword cppSTLfunction future_category + syntax keyword cppSTLfunction make_error_code + syntax keyword cppSTLfunction make_error_condition + syntax keyword cppSTLfunction make_ready_at_thread_exit + " syntax keyword cppSTLfunction async + " syntax keyword cppSTLfunction share + " syntax keyword cppSTLfunction valid + " syntax keyword cppSTLfunction wait + + " initializer_list + syntax keyword cppSTLtype initializer_list + + " io + syntax keyword cppSTLenum io_errc + syntax keyword cppSTLfunction iostream_category + syntax keyword cppSTLfunction vscanf vfscanf vsscanf + syntax keyword cppSTLfunction snprintf vsnprintf + syntax keyword cppSTLfunction vwscanf vfwscanf vswscanf + + " iterator + syntax keyword cppSTLiterator move_iterator + syntax keyword cppSTLfunction make_move_iterator + syntax keyword cppSTLfunction next prev + + " limits + syntax keyword cppSTLconstant max_digits10 + syntax keyword cppSTLfunction lowest + + " locale + syntax keyword cppSTLtype wstring_convert + syntax keyword cppSTLtype wbuffer_convert + syntax keyword cppSTLtype codecvt_utf8 + syntax keyword cppSTLtype codecvt_utf16 + syntax keyword cppSTLtype codecvt_utf8_utf16 + syntax keyword cppSTLtype codecvt_mode + syntax keyword cppSTLfunction isblank + syntax keyword cppSTLfunction iswblank + + " memory + syntax keyword cppSTLtype unique_ptr + syntax keyword cppSTLtype shared_ptr + syntax keyword cppSTLtype weak_ptr + syntax keyword cppSTLtype owner_less + syntax keyword cppSTLtype enable_shared_from_this + syntax keyword cppSTLtype default_delete + syntax keyword cppSTLtype allocator_traits + syntax keyword cppSTLtype allocator_type + syntax keyword cppSTLtype allocator_arg_t + syntax keyword cppSTLtype uses_allocator + syntax keyword cppSTLtype scoped_allocator_adaptor + syntax keyword cppSTLtype pointer_safety + syntax keyword cppSTLtype pointer_traits + syntax keyword cppSTLconstant allocator_arg + syntax keyword cppSTLexception bad_weak_ptr + syntax keyword cppSTLcast static_pointer_cast + syntax keyword cppSTLcast dynamic_pointer_cast + syntax keyword cppSTLcast const_pointer_cast + syntax keyword cppSTLfunction make_shared + syntax keyword cppSTLfunction declare_reachable + syntax keyword cppSTLfunction undeclare_reachable + syntax keyword cppSTLfunction declare_no_pointers + syntax keyword cppSTLfunction undeclare_no_pointers + syntax keyword cppSTLfunction get_pointer_safety + syntax keyword cppSTLfunction addressof + syntax keyword cppSTLfunction allocate_shared + syntax keyword cppSTLfunction get_deleter + " syntax keyword cppSTLfunction align + + " mutex + syntax keyword cppSTLtype mutex + syntax keyword cppSTLtype timed_mutex + syntax keyword cppSTLtype recursive_mutex + syntax keyword cppSTLtype recursive_timed_mutex + syntax keyword cppSTLtype lock_guard + syntax keyword cppSTLtype unique_lock + syntax keyword cppSTLtype defer_lock_t + syntax keyword cppSTLtype try_to_lock_t + syntax keyword cppSTLtype adopt_lock_t + syntax keyword cppSTLtype once_flag + syntax keyword cppSTLtype condition_variable_any + syntax keyword cppSTLenum cv_status + syntax keyword cppSTLconstant defer_lock try_to_lock adopt_lock + syntax keyword cppSTLfunction try_lock lock unlock try_lock_for try_lock_until + syntax keyword cppSTLfunction call_once + syntax keyword cppSTLfunction owns_lock + syntax keyword cppSTLfunction notify_all_at_thread_exit + syntax keyword cppSTLfunction release + " Note: unique_lock has method 'mutex()', but already set as cppSTLtype + " syntax keyword cppSTLfunction mutex + + " new + syntax keyword cppSTLexception bad_array_new_length + syntax keyword cppSTLfunction get_new_handler + + " numerics, cmath + syntax keyword cppSTLconstant HUGE_VALF + syntax keyword cppSTLconstant HUGE_VALL + syntax keyword cppSTLconstant INFINITY + syntax keyword cppSTLconstant NAN + syntax keyword cppSTLconstant math_errhandling + syntax keyword cppSTLconstant MATH_ERRNO + syntax keyword cppSTLconstant MATH_ERREXCEPT + syntax keyword cppSTLconstant FP_NORMAL + syntax keyword cppSTLconstant FP_SUBNORMAL + syntax keyword cppSTLconstant FP_ZERO + syntax keyword cppSTLconstant FP_INFINITY + syntax keyword cppSTLconstant FP_NAN + syntax keyword cppSTLconstant FLT_EVAL_METHOD syntax keyword cppSTLfunction imaxabs syntax keyword cppSTLfunction imaxdiv syntax keyword cppSTLfunction remainder @@ -1075,22 +1184,6 @@ if !exists("cpp_no_cpp11") syntax keyword cppSTLfunction isnan syntax keyword cppSTLfunction isnormal syntax keyword cppSTLfunction signbit - syntax keyword cppSTLconstant HUGE_VALF - syntax keyword cppSTLconstant HUGE_VALL - syntax keyword cppSTLconstant INFINITY - syntax keyword cppSTLconstant NAN - syntax keyword cppSTLconstant math_errhandling - syntax keyword cppSTLconstant MATH_ERRNO - syntax keyword cppSTLconstant MATH_ERREXCEPT - syntax keyword cppSTLconstant FP_NORMAL - syntax keyword cppSTLconstant FP_SUBNORMAL - syntax keyword cppSTLconstant FP_ZERO - syntax keyword cppSTLconstant FP_INFINITY - syntax keyword cppSTLconstant FP_NAN - syntax keyword cppSTLconstant FLT_EVAL_METHOD - - " complex - "syntax keyword cppSTLfunction proj " random syntax keyword cppSTLtype linear_congruential_engine @@ -1110,7 +1203,6 @@ if !exists("cpp_no_cpp11") syntax keyword cppSTLtype ranlux24 syntax keyword cppSTLtype ranlux48 syntax keyword cppSTLtype knuth_b - syntax keyword cppSTLfunction generate_canonical syntax keyword cppSTLtype uniform_int_distribution syntax keyword cppSTLtype uniform_real_distribution syntax keyword cppSTLtype bernoulli_distribution @@ -1132,166 +1224,7 @@ if !exists("cpp_no_cpp11") syntax keyword cppSTLtype piecewise_constant_distribution syntax keyword cppSTLtype piecewise_linear_distribution syntax keyword cppSTLtype seed_seq - - " io - syntax keyword cppSTLfunction iostream_category - syntax keyword cppSTLenum io_errc - syntax keyword cppSTLfunction vscanf vfscanf vsscanf - syntax keyword cppSTLfunction snprintf vsnprintf - syntax keyword cppSTLfunction vwscanf vfwscanf vswscanf - - " locale - syntax keyword cppSTLfunction isblank - syntax keyword cppSTLfunction iswblank - syntax keyword cppSTLtype wstring_convert - syntax keyword cppSTLtype wbuffer_convert - syntax keyword cppSTLtype codecvt_utf8 - syntax keyword cppSTLtype codecvt_utf16 - syntax keyword cppSTLtype codecvt_utf8_utf16 - syntax keyword cppSTLtype codecvt_mode - - " regex - syntax keyword cppSTLtype basic_regex - syntax keyword cppSTLtype sub_match - syntax keyword cppSTLtype match_results - syntax keyword cppSTLtype regex_traits - syntax keyword cppSTLtype regex_match regex_search regex_replace - syntax keyword cppSTLiterator regex_iterator - syntax keyword cppSTLiterator regex_token_iterator - syntax keyword cppSTLexception regex_error - syntax keyword cppSTLtype syntax_option_type match_flag_type error_type - - " atomic - syntax keyword cppSTLtype atomic - syntax keyword cppSTLfunction atomic_is_lock_free - syntax keyword cppSTLfunction atomic_store - syntax keyword cppSTLfunction atomic_store_explicit - syntax keyword cppSTLfunction atomic_load - syntax keyword cppSTLfunction atomic_load_explicit - syntax keyword cppSTLfunction atomic_exchange - syntax keyword cppSTLfunction atomic_exchange_explicit - syntax keyword cppSTLfunction atomic_compare_exchange_weak - syntax keyword cppSTLfunction atomic_compare_exchange_weak_explicit - syntax keyword cppSTLfunction atomic_compare_exchange_strong - syntax keyword cppSTLfunction atomic_compare_exchange_strong_explicit - syntax keyword cppSTLfunction atomic_fetch_add - syntax keyword cppSTLfunction atomic_fetch_add_explicit - syntax keyword cppSTLfunction atomic_fetch_sub - syntax keyword cppSTLfunction atomic_fetch_sub_explicit - syntax keyword cppSTLfunction atomic_fetch_and - syntax keyword cppSTLfunction atomic_fetch_and_explicit - syntax keyword cppSTLfunction atomic_fetch_or - syntax keyword cppSTLfunction atomic_fetch_or_explicit - syntax keyword cppSTLfunction atomic_fetch_xor - syntax keyword cppSTLfunction atomic_fetch_xor_explicit - - syntax keyword cppSTLtype atomic_flag - syntax keyword cppSTLfunction atomic_flag_test_and_set - syntax keyword cppSTLfunction atomic_flag_test_and_set_explicit - syntax keyword cppSTLfunction atomic_flag_clear - syntax keyword cppSTLfunction atomic_flag_clear_explicit - - syntax keyword cppSTLtype atomic_bool - syntax keyword cppSTLtype atomic_char - syntax keyword cppSTLtype atomic_schar - syntax keyword cppSTLtype atomic_uchar - syntax keyword cppSTLtype atomic_short - syntax keyword cppSTLtype atomic_ushort - syntax keyword cppSTLtype atomic_int - syntax keyword cppSTLtype atomic_uint - syntax keyword cppSTLtype atomic_long - syntax keyword cppSTLtype atomic_ulong - syntax keyword cppSTLtype atomic_llong - syntax keyword cppSTLtype atomic_ullong - syntax keyword cppSTLtype atomic_char16_t - syntax keyword cppSTLtype atomic_char32_t - syntax keyword cppSTLtype atomic_wchar_t - syntax keyword cppSTLtype atomic_int_least8_t - syntax keyword cppSTLtype atomic_uint_least8_t - syntax keyword cppSTLtype atomic_int_least16_t - syntax keyword cppSTLtype atomic_uint_least16_t - syntax keyword cppSTLtype atomic_int_least32_t - syntax keyword cppSTLtype atomic_uint_least32_t - syntax keyword cppSTLtype atomic_int_least64_t - syntax keyword cppSTLtype atomic_uint_least64_t - syntax keyword cppSTLtype atomic_int_fast8_t - syntax keyword cppSTLtype atomic_uint_fast8_t - syntax keyword cppSTLtype atomic_int_fast16_t - syntax keyword cppSTLtype atomic_uint_fast16_t - syntax keyword cppSTLtype atomic_int_fast32_t - syntax keyword cppSTLtype atomic_uint_fast32_t - syntax keyword cppSTLtype atomic_int_fast64_t - syntax keyword cppSTLtype atomic_uint_fast64_t - syntax keyword cppSTLtype atomic_intptr_t - syntax keyword cppSTLtype atomic_uintptr_t - syntax keyword cppSTLtype atomic_size_t - syntax keyword cppSTLtype atomic_ptrdiff_t - syntax keyword cppSTLtype atomic_intmax_t - syntax keyword cppSTLtype atomic_uintmax_t - - syntax keyword cppSTLtype memory_order - syntax keyword cppSTLfunction atomic_init - syntax keyword cppSTLfunction ATOMIC_VAR_INIT - syntax keyword cppSTLconstant ATOMIC_FLAG_INIT - syntax keyword cppSTLfunction kill_dependency - syntax keyword cppSTLfunction atomic_thread_fence - syntax keyword cppSTLfunction atomic_signal_fence - - " thread - syntax keyword cppSTLtype thread - syntax keyword cppSTLnamespace this_thread - syntax keyword cppSTLfunction yield - syntax keyword cppSTLfunction get_id - syntax keyword cppSTLfunction sleep_for - syntax keyword cppSTLfunction sleep_until - - syntax keyword cppSTLfunction joinable - syntax keyword cppSTLfunction get_id - syntax keyword cppSTLfunction native_handle - syntax keyword cppSTLfunction hardware_concurrency - syntax keyword cppSTLfunction join - syntax keyword cppSTLfunction detach - - syntax keyword cppSTLtype mutex - syntax keyword cppSTLtype timed_mutex - syntax keyword cppSTLtype recursive_mutex - syntax keyword cppSTLtype recursive_timed_mutex - syntax keyword cppSTLtype lock_guard - syntax keyword cppSTLtype unique_lock - syntax keyword cppSTLtype defer_lock_t - syntax keyword cppSTLtype try_to_lock_t - syntax keyword cppSTLtype adopt_lock_t - syntax keyword cppSTLconstant defer_lock try_to_lock adopt_lock - syntax keyword cppSTLfunction try_lock lock - syntax keyword cppSTLfunction call_once - syntax keyword cppSTLtype once_flag - syntax keyword cppSTLtype condition_variable - syntax keyword cppSTLtype condition_variable_any - syntax keyword cppSTLfunction notify_all_at_thread_exit - syntax keyword cppSTLenum cv_status - - syntax keyword cppSTLtype promise - syntax keyword cppSTLtype packaged_task - syntax keyword cppSTLtype future - syntax keyword cppSTLtype shared_future - - syntax keyword cppSTLfunction async - syntax keyword cppSTLenum launch - - syntax keyword cppSTLenum future_status - syntax keyword cppSTLenum future_errc - syntax keyword cppSTLtype future_error - syntax keyword cppSTLfunction future_category - - " string - syntax keyword cppSTLfunction stoi - syntax keyword cppSTLfunction stol - syntax keyword cppSTLfunction stoll - syntax keyword cppSTLfunction stoul - syntax keyword cppSTLfunction stoull - syntax keyword cppSTLfunction stof - syntax keyword cppSTLfunction stod - syntax keyword cppSTLfunction stold + syntax keyword cppSTLfunction generate_canonical " ratio syntax keyword cppSTLtype ratio @@ -1326,56 +1259,703 @@ if !exists("cpp_no_cpp11") syntax keyword cppSTLtype ratio_greater syntax keyword cppSTLtype ratio_greater_equal - "limits - syntax keyword cppSTLfunction lowest + " regex + syntax keyword cppSTLtype basic_regex + syntax keyword cppSTLtype sub_match + syntax keyword cppSTLtype match_results + syntax keyword cppSTLtype regex_traits + syntax keyword cppSTLtype regex_match regex_search regex_replace + syntax keyword cppSTLiterator regex_iterator + syntax keyword cppSTLiterator regex_token_iterator + syntax keyword cppSTLexception regex_error + syntax keyword cppSTLtype syntax_option_type match_flag_type error_type - "cuchar - syntax keyword cppSTLfunction mbrtoc16 - syntax keyword cppSTLfunction c16rtomb - syntax keyword cppSTLfunction mbrtoc32 - syntax keyword cppSTLfunction c32rtomb + " string + syntax keyword cppSTLfunction stoi + syntax keyword cppSTLfunction stol + syntax keyword cppSTLfunction stoll + syntax keyword cppSTLfunction stoul + syntax keyword cppSTLfunction stoull + syntax keyword cppSTLfunction stof + syntax keyword cppSTLfunction stod + syntax keyword cppSTLfunction stold - "cinttypes - syntax keyword cppSTLfunction strtoimax - syntax keyword cppSTLfunction strtoumax - syntax keyword cppSTLfunction wcstoimax - syntax keyword cppSTLfunction wcstoumax + " system_error + syntax keyword cppSTLenum errc + syntax keyword cppSTLtype system_error + syntax keyword cppSTLtype error_code + syntax keyword cppSTLtype error_condition + syntax keyword cppSTLtype error_category + syntax keyword cppSTLtype is_error_code_enum + syntax keyword cppSTLtype is_error_condition_enum + " syntax keyword cppSTLfunction default_error_condition + " syntax keyword cppSTLfunction generic_category + " syntax keyword cppSTLfunction system_category + " syntax keyword cppSTLfunction code + " syntax keyword cppSTLfunction category + " syntax keyword cppSTLfunction message + " syntax keyword cppSTLfunction equivalent - syntax keyword cppSTLtype nanoseconds - syntax keyword cppSTLtype microseconds - syntax keyword cppSTLtype milliseconds - syntax keyword cppSTLtype seconds - syntax keyword cppSTLtype minutes - syntax keyword cppSTLtype hours + " thread + syntax keyword cppSTLnamespace this_thread + syntax keyword cppSTLtype thread + syntax keyword cppSTLfunction get_id + syntax keyword cppSTLfunction sleep_for + syntax keyword cppSTLfunction sleep_until + syntax keyword cppSTLfunction joinable + syntax keyword cppSTLfunction native_handle + syntax keyword cppSTLfunction hardware_concurrency + " syntax keyword cppSTLfunction yield + " syntax keyword cppSTLfunction join + " syntax keyword cppSTLfunction detach + + " tuple + syntax keyword cppSTLtype tuple + syntax keyword cppSTLtype tuple_size + syntax keyword cppSTLtype tuple_element + syntax keyword cppSTLfunction make_tuple + syntax keyword cppSTLfunction tie + syntax keyword cppSTLfunction forward_as_tuple + syntax keyword cppSTLfunction tuple_cat + " Note: 'ignore' is already set as cppSTLfunction + " syntax keyword cppSTLconstant ignore + + " typeindex + syntax keyword cppSTLtype type_index - "raw string literals + " type_traits + syntax keyword cppSTLtype is_void + syntax keyword cppSTLtype is_integral + syntax keyword cppSTLtype is_floating_point + syntax keyword cppSTLtype is_array + syntax keyword cppSTLtype is_enum + syntax keyword cppSTLtype is_union + syntax keyword cppSTLtype is_class + syntax keyword cppSTLtype is_function + syntax keyword cppSTLtype is_pointer + syntax keyword cppSTLtype is_lvalue_reference + syntax keyword cppSTLtype is_rvalue_reference + syntax keyword cppSTLtype is_member_object_pointer + syntax keyword cppSTLtype is_member_function_pointer + syntax keyword cppSTLtype is_fundamental + syntax keyword cppSTLtype is_arithmetic + syntax keyword cppSTLtype is_scalar + syntax keyword cppSTLtype is_object + syntax keyword cppSTLtype is_compound + syntax keyword cppSTLtype is_reference + syntax keyword cppSTLtype is_member_pointer + syntax keyword cppSTLtype is_const + syntax keyword cppSTLtype is_volatile + syntax keyword cppSTLtype is_trivial + syntax keyword cppSTLtype is_trivially_copyable + syntax keyword cppSTLtype is_standard_layout + syntax keyword cppSTLtype is_pod + syntax keyword cppSTLtype is_literal_type + syntax keyword cppSTLtype is_empty + syntax keyword cppSTLtype is_polymorphic + syntax keyword cppSTLtype is_abstract + syntax keyword cppSTLtype is_signed + syntax keyword cppSTLtype is_unsigned + syntax keyword cppSTLtype is_constructible + syntax keyword cppSTLtype is_trivially_constructible + syntax keyword cppSTLtype is_nothrow_constructible + syntax keyword cppSTLtype is_default_constructible + syntax keyword cppSTLtype is_trivially_default_constructible + syntax keyword cppSTLtype is_nothrow_default_constructible + syntax keyword cppSTLtype is_copy_constructible + syntax keyword cppSTLtype is_trivially_copy_constructible + syntax keyword cppSTLtype is_nothrow_copy_constructible + syntax keyword cppSTLtype is_move_constructible + syntax keyword cppSTLtype is_trivially_move_constructible + syntax keyword cppSTLtype is_nothrow_move_constructible + syntax keyword cppSTLtype is_assignable + syntax keyword cppSTLtype is_trivially_assignable + syntax keyword cppSTLtype is_nothrow_assignable + syntax keyword cppSTLtype is_copy_assignable + syntax keyword cppSTLtype is_trivially_copy_assignable + syntax keyword cppSTLtype is_nothrow_copy_assignable + syntax keyword cppSTLtype is_move_assignable + syntax keyword cppSTLtype is_trivially_move_assignable + syntax keyword cppSTLtype is_nothrow_move_assignable + syntax keyword cppSTLtype is_destructible + syntax keyword cppSTLtype is_trivially_destructible + syntax keyword cppSTLtype is_nothrow_destructible + syntax keyword cppSTLtype has_virtual_destructor + syntax keyword cppSTLtype alignment_of + syntax keyword cppSTLtype rank + syntax keyword cppSTLtype extent + syntax keyword cppSTLtype is_same + syntax keyword cppSTLtype is_base_of + syntax keyword cppSTLtype is_convertible + syntax keyword cppSTLtype remove_cv + syntax keyword cppSTLtype remove_const + syntax keyword cppSTLtype remove_volatile + syntax keyword cppSTLtype add_cv + syntax keyword cppSTLtype add_const + syntax keyword cppSTLtype add_volatile + syntax keyword cppSTLtype remove_reference + syntax keyword cppSTLtype add_lvalue_reference + syntax keyword cppSTLtype add_rvalue_reference + syntax keyword cppSTLtype remove_pointer + syntax keyword cppSTLtype add_pointer + syntax keyword cppSTLtype make_signed + syntax keyword cppSTLtype make_unsigned + syntax keyword cppSTLtype remove_extent + syntax keyword cppSTLtype remove_all_extents + syntax keyword cppSTLtype aligned_storage + syntax keyword cppSTLtype aligned_union + syntax keyword cppSTLtype decay + syntax keyword cppSTLtype enable_if + syntax keyword cppSTLtype conditional + syntax keyword cppSTLtype common_type + syntax keyword cppSTLtype underlying_type + syntax keyword cppSTLtype result_of + syntax keyword cppSTLtype integral_constant + syntax keyword cppSTLtype true_type + syntax keyword cppSTLtype false_type + + " unordered_map, unordered_set, unordered_multimap, unordered_multiset + syntax keyword cppSTLtype unordered_map + syntax keyword cppSTLtype unordered_set + syntax keyword cppSTLtype unordered_multimap + syntax keyword cppSTLtype unordered_multiset + syntax keyword cppSTLtype hasher + syntax keyword cppSTLtype key_equal + syntax keyword cppSTLiterator local_iterator + syntax keyword cppSTLiterator const_local_iterator + syntax keyword cppSTLfunction bucket_count + syntax keyword cppSTLfunction max_bucket_count + syntax keyword cppSTLfunction bucket_size + syntax keyword cppSTLfunction bucket + syntax keyword cppSTLfunction load_factor + syntax keyword cppSTLfunction max_load_factor + syntax keyword cppSTLfunction rehash + syntax keyword cppSTLfunction reserve + syntax keyword cppSTLfunction hash_function + syntax keyword cppSTLfunction key_eq + + " utility + syntax keyword cppSTLtype piecewise_construct_t + syntax keyword cppSTLconstant piecewise_construct + syntax keyword cppSTLfunction declval + syntax keyword cppSTLfunction forward + syntax keyword cppSTLfunction move_if_noexcept + + " raw string literals syntax region cppRawString matchgroup=cppRawDelimiter start=@\%(u8\|[uLU]\)\=R"\z([[:alnum:]_{}[\]#<>%:;.?*\+\-/\^&|~!=,"']\{,16}\)(@ end=/)\z1"/ contains=@Spell syn match cNumber "0b[01]\+" endif " C++11 + if !exists("cpp_no_cpp14") - "dynarray - syntax keyword cppSTLtype dynarray + " chrono + syntax keyword cppSTLnamespace literals + syntax keyword cppSTLnamespace chrono_literals - "thread - syntax keyword cppSTLtype shared_mutex - syntax keyword cppSTLtype shared_lock + " iterator + syntax keyword cppSTLfunction make_reverse_iterator - "memory + " memory syntax keyword cppSTLfunction make_unique + + " utility + syntax keyword cppSTLtype integer_sequence + syntax keyword cppSTLtype index_sequence + syntax keyword cppSTLtype make_integer_sequence + syntax keyword cppSTLtype make_index_sequence + syntax keyword cppSTLtype index_sequence_for + + " shared_mutex + syntax keyword cppSTLtype shared_timed_mutex + syntax keyword cppSTLtype shared_lock + syntax keyword cppSTLfunction lock_shared + syntax keyword cppSTLfunction unlock_shared + syntax keyword cppSTLfunction try_lock_shared + syntax keyword cppSTLfunction try_lock_shared_for + syntax keyword cppSTLfunction try_lock_shared_until + + " string + syntax keyword cppSTLnamespace string_literals + + " tuple + syntax keyword cppSTLtype tuple_element_t + + " type_traits + syntax keyword cppSTLtype is_null_pointer + syntax keyword cppSTLtype remove_cv_t + syntax keyword cppSTLtype remove_const_t + syntax keyword cppSTLtype remove_volatile_t + syntax keyword cppSTLtype add_cv_t + syntax keyword cppSTLtype add_const_t + syntax keyword cppSTLtype add_volatile_t + syntax keyword cppSTLtype remove_reference_t + syntax keyword cppSTLtype add_lvalue_reference_t + syntax keyword cppSTLtype add_rvalue_reference_t + syntax keyword cppSTLtype remove_pointer_t + syntax keyword cppSTLtype add_pointer_t + syntax keyword cppSTLtype make_signed_t + syntax keyword cppSTLtype make_unsigned_t + syntax keyword cppSTLtype remove_extent_t + syntax keyword cppSTLtype remove_all_extents_t + syntax keyword cppSTLtype aligned_storage_t + syntax keyword cppSTLtype aligned_union_t + syntax keyword cppSTLtype decay_t + syntax keyword cppSTLtype enable_if_t + syntax keyword cppSTLtype conditional_t + syntax keyword cppSTLtype common_type_t + syntax keyword cppSTLtype underlying_type_t + syntax keyword cppSTLtype result_of_t endif " C++14 -if !exists("cpp_no_boost") - "optional is not a part of C++14 anymore + +if !exists("cpp_no_cpp17") + " algorithm + syntax keyword cppSTLfunction clamp + syntax keyword cppSTLfunction for_each_n + + " any + syntax keyword cppSTLtype any + syntax keyword cppSTLexception bad_any_cast + syntax keyword cppSTLcast any_cast + syntax keyword cppSTLfunction make_any + + " array + syntax keyword cppSTLfunction to_array + syntax keyword cppSTLfunction make_array + + " atomic + syntax keyword cppSTLconstant is_always_lock_free + + " chrono + syntax keyword cppSTLbool treat_as_floating_point_v + + " cmath + syntax keyword cppSTLfunction assoc_laguerre assoc_laguerref assoc_laguerrel + syntax keyword cppSTLfunction assoc_legendre assoc_legendref assoc_legendrel + syntax keyword cppSTLfunction beta betaf betal + syntax keyword cppSTLfunction comp_ellint_1 comp_ellint_1f comp_ellint_1l + syntax keyword cppSTLfunction comp_ellint_2 comp_ellint_2f comp_ellint_2l + syntax keyword cppSTLfunction comp_ellint_3 comp_ellint_3f comp_ellint_3l + syntax keyword cppSTLfunction cyl_bessel_i cyl_bessel_if cyl_bessel_il + syntax keyword cppSTLfunction cyl_bessel_j cyl_bessel_jf cyl_bessel_jl + syntax keyword cppSTLfunction cyl_bessel_k cyl_bessel_kf cyl_bessel_kl + syntax keyword cppSTLfunction cyl_neumann cyl_neumannf cyl_neumannl + syntax keyword cppSTLfunction ellint_1 ellint_1f ellint_1l + syntax keyword cppSTLfunction ellint_2 ellint_2f ellint_2l + syntax keyword cppSTLfunction ellint_3 ellint_3f ellint_3l + syntax keyword cppSTLfunction expint expintf expintl + syntax keyword cppSTLfunction hermite hermitef hermitel + syntax keyword cppSTLfunction legendre legendrefl egendrel + syntax keyword cppSTLfunction laguerre laguerref laguerrel + syntax keyword cppSTLfunction riemann_zeta riemann_zetaf riemann_zetal + syntax keyword cppSTLfunction sph_bessel sph_besself sph_bessell + syntax keyword cppSTLfunction sph_legendre sph_legendref sph_legendrel + syntax keyword cppSTLfunction sph_neumann sph_neumannf sph_neumannl + + " cstdlib + syntax keyword cppSTLfunction aligned_alloc + + " exception + syntax keyword cppSTLfunction uncaught_exceptions + + " execution + syntax keyword cppSTLnamespace execution + syntax keyword cppSTLconstant seq par par_unseq + syntax keyword cppSTLbool is_execution_policy_v + syntax keyword cppSTLtype sequenced_policy + syntax keyword cppSTLtype parallel_policy + syntax keyword cppSTLtype parallel_unsequenced_policy + syntax keyword cppSTLtype is_execution_policy + + " filesystem + syntax keyword cppSTLnamespace filesystem + syntax keyword cppSTLexception filesystem_error + syntax keyword cppSTLtype path + syntax keyword cppSTLtype directory_entry + syntax keyword cppSTLtype directory_iterator + syntax keyword cppSTLtype recursive_directory_iterator + syntax keyword cppSTLtype file_status + syntax keyword cppSTLtype space_info + syntax keyword cppSTLtype file_time_type + syntax keyword cppSTLenum file_type + syntax keyword cppSTLenum perms + syntax keyword cppSTLenum copy_options + syntax keyword cppSTLenum directory_options + syntax keyword cppSTLConstant preferred_separator + syntax keyword cppSTLconstant available + " Note: 'capacity' and 'free' are already set as cppSTLfunction + " syntax keyword cppSTLconstant capacity + " syntax keyword cppSTLconstant free + syntax keyword cppSTLfunction concat + syntax keyword cppSTLfunction make_preferred + syntax keyword cppSTLfunction remove_filename + syntax keyword cppSTLfunction replace_filename + syntax keyword cppSTLfunction replace_extension + syntax keyword cppSTLfunction native + syntax keyword cppSTLfunction string_type + " Note: wstring, u8string, u16string, u32string already set as cppSTLtype + " syntax keyword cppSTLfunction wstring + " syntax keyword cppSTLfunction u8string + " syntax keyword cppSTLfunction u16string + " syntax keyword cppSTLfunction u32string + syntax keyword cppSTLfunction generic_string + syntax keyword cppSTLfunction generic_wstring + syntax keyword cppSTLfunction generic_u8string + syntax keyword cppSTLfunction generic_u16string + syntax keyword cppSTLfunction generic_u32string + syntax keyword cppSTLfunction lexically_normal + syntax keyword cppSTLfunction lexically_relative + syntax keyword cppSTLfunction lexically_proximate + syntax keyword cppSTLfunction root_name + syntax keyword cppSTLfunction root_directory + syntax keyword cppSTLfunction root_path + syntax keyword cppSTLfunction relative_path + syntax keyword cppSTLfunction parent_path + " syntax keyword cppSTLfunction filename + syntax keyword cppSTLfunction stem + syntax keyword cppSTLfunction extension + syntax keyword cppSTLfunction has_root_name + syntax keyword cppSTLfunction has_root_directory + syntax keyword cppSTLfunction has_root_path + syntax keyword cppSTLfunction has_relative_path + syntax keyword cppSTLfunction has_parent_path + syntax keyword cppSTLfunction has_filename + syntax keyword cppSTLfunction has_stem + syntax keyword cppSTLfunction has_extension + syntax keyword cppSTLfunction is_absolute + syntax keyword cppSTLfunction is_relative + syntax keyword cppSTLfunction hash_value + syntax keyword cppSTLfunction u8path + syntax keyword cppSTLfunction path1 + syntax keyword cppSTLfunction path2 + " syntax keyword cppSTLfunction path + syntax keyword cppSTLfunction status + syntax keyword cppSTLfunction symlink_status + syntax keyword cppSTLfunction options + " syntax keyword cppSTLfunction depth + syntax keyword cppSTLfunction recursive_pending + syntax keyword cppSTLfunction disable_recursive_pending + " syntax keyword cppSTLfunction type + syntax keyword cppSTLfunction permissions + syntax keyword cppSTLfunction absolute + syntax keyword cppSTLfunction system_complete + syntax keyword cppSTLfunction canonical + syntax keyword cppSTLfunction weakly_canonical + syntax keyword cppSTLfunction relative + syntax keyword cppSTLfunction proximate + syntax keyword cppSTLfunction copy_file + syntax keyword cppSTLfunction copy_symlink + syntax keyword cppSTLfunction create_directory + syntax keyword cppSTLfunction create_directories + syntax keyword cppSTLfunction create_hard_link + syntax keyword cppSTLfunction create_symlink + syntax keyword cppSTLfunction create_directory_symlink + syntax keyword cppSTLfunction current_path + " syntax keyword cppSTLfunction exists + syntax keyword cppSTLfunction file_size + syntax keyword cppSTLfunction hard_link_count + syntax keyword cppSTLfunction last_write_time + syntax keyword cppSTLfunction read_symlink + syntax keyword cppSTLfunction remove_all + syntax keyword cppSTLfunction resize_file + syntax keyword cppSTLfunction space + syntax keyword cppSTLfunction temp_directory_path + syntax keyword cppSTLfunction is_block_file + syntax keyword cppSTLfunction is_character_file + syntax keyword cppSTLfunction is_directory + syntax keyword cppSTLfunction is_fifo + syntax keyword cppSTLfunction is_other + syntax keyword cppSTLfunction is_regular_file + syntax keyword cppSTLfunction is_socket + syntax keyword cppSTLfunction is_symlink + syntax keyword cppSTLfunction status_known + " Note: 'is_empty' already set as cppSTLtype + " syntax keyword cppSTLfunction is_empty + + " functional + syntax keyword cppSTLtype default_order + syntax keyword cppSTLtype default_order_t + syntax keyword cppSTLtype default_searcher + syntax keyword cppSTLtype boyer_moore_searcher + syntax keyword cppSTLtype boyer_moore_horspool_searcher + syntax keyword cppSTLbool is_bind_expression_v + syntax keyword cppSTLbool is_placeholder_v + syntax keyword cppSTLfunction not_fn + syntax keyword cppSTLfunction make_default_searcher + syntax keyword cppSTLfunction make_boyer_moore_searcher + syntax keyword cppSTLfunction make_boyer_moore_horspool_searcher + " syntax keyword cppSTLfunction invoke + + " memory + syntax keyword cppSTLcast reinterpret_pointer_cast + syntax keyword cppSTLfunction uninitialized_move + syntax keyword cppSTLfunction uninitialized_move_n + syntax keyword cppSTLfunction uninitialized_default_construct + syntax keyword cppSTLfunction uninitialized_default_construct_n + syntax keyword cppSTLfunction uninitialized_value_construct + syntax keyword cppSTLfunction uninitialized_value_construct_n + syntax keyword cppSTLfunction destroy_at + syntax keyword cppSTLfunction destroy_n + + " memory_resource + syntax keyword cppSTLtype polymorphic_allocator + syntax keyword cppSTLtype memory_resource + syntax keyword cppSTLtype synchronized_pool_resource + syntax keyword cppSTLtype unsynchronized_pool_resource + syntax keyword cppSTLtype pool_options + syntax keyword cppSTLtype monotonic_buffer_resource + syntax keyword cppSTLfunction upstream_resource + syntax keyword cppSTLfunction get_default_resource + syntax keyword cppSTLfunction new_default_resource + syntax keyword cppSTLfunction set_default_resource + syntax keyword cppSTLfunction null_memory_resource + syntax keyword cppSTLfunction allocate + syntax keyword cppSTLfunction deallocate + syntax keyword cppSTLfunction construct + syntax keyword cppSTLfunction destruct + syntax keyword cppSTLfunction resource + syntax keyword cppSTLfunction select_on_container_copy_construction + syntax keyword cppSTLfunction do_allocate + syntax keyword cppSTLfunction do_deallocate + syntax keyword cppSTLfunction do_is_equal + + " new + syntax keyword cppSTLconstant hardware_destructive_interference_size + syntax keyword cppSTLconstant hardware_constructive_interference_size + syntax keyword cppSTLfunction launder + + " numeric + syntax keyword cppSTLfunction gcd + syntax keyword cppSTLfunction lcm + syntax keyword cppSTLfunction exclusive_scan + syntax keyword cppSTLfunction inclusive_scan + syntax keyword cppSTLfunction transform_reduce + syntax keyword cppSTLfunction transform_exclusive_scan + syntax keyword cppSTLfunction transform_inclusive_scan + " syntax keyword cppSTLfunction reduce + + " optional syntax keyword cppSTLtype optional - "syntax keyword cppSTLfunction value - syntax keyword cppSTLfunction value_or + syntax keyword cppSTLtype nullopt_t + syntax keyword cppSTLexception bad_optional_access + syntax keyword cppSTLconstant nullopt syntax keyword cppSTLfunction make_optional + syntax keyword cppSTLfunction value_or + syntax keyword cppSTLfunction has_value + " syntax keyword cppSTLfunction value + + " string_view + syntax keyword cppSTLtype basic_string_view + syntax keyword cppSTLtype string_view + syntax keyword cppSTLtype wstring_view + syntax keyword cppSTLtype u16string_view + syntax keyword cppSTLtype u32string_view + syntax keyword cppSTLfunction remove_prefix + syntax keyword cppSTLfunction remove_suffix + + " system_error + syntax keyword cppSTLbool is_error_code_enum_v + syntax keyword cppSTLbool is_error_condition_enum_v + + " thread + syntax keyword cppSTLtype shared_mutex + + " tuple + syntax keyword cppSTLconstant tuple_size_v + syntax keyword cppSTLfunction make_from_tuple + " syntax keyword cppSTLfunction apply + + " type_traits + syntax keyword cppSTLbool is_void_v + syntax keyword cppSTLbool is_null_pointer_v + syntax keyword cppSTLbool is_integral_v + syntax keyword cppSTLbool is_floating_point_v + syntax keyword cppSTLbool is_array_v + syntax keyword cppSTLbool is_enum_v + syntax keyword cppSTLbool is_union_v + syntax keyword cppSTLbool is_class_v + syntax keyword cppSTLbool is_function_v + syntax keyword cppSTLbool is_pointer_v + syntax keyword cppSTLbool is_lvalue_reference_v + syntax keyword cppSTLbool is_rvalue_reference_v + syntax keyword cppSTLbool is_member_object_pointer_v + syntax keyword cppSTLbool is_member_function_pointer_v + syntax keyword cppSTLbool is_fundamental_v + syntax keyword cppSTLbool is_arithmetic_v + syntax keyword cppSTLbool is_scalar_v + syntax keyword cppSTLbool is_object_v + syntax keyword cppSTLbool is_compound_v + syntax keyword cppSTLbool is_reference_v + syntax keyword cppSTLbool is_member_pointer_v + syntax keyword cppSTLbool is_const_v + syntax keyword cppSTLbool is_volatile_v + syntax keyword cppSTLbool is_trivial_v + syntax keyword cppSTLbool is_trivially_copyable_v + syntax keyword cppSTLbool is_standard_layout_v + syntax keyword cppSTLbool is_pod_v + syntax keyword cppSTLbool is_literal_type_v + syntax keyword cppSTLbool is_empty_v + syntax keyword cppSTLbool is_polymorphic_v + syntax keyword cppSTLbool is_abstract_v + syntax keyword cppSTLbool is_signed_v + syntax keyword cppSTLbool is_unsigned_v + syntax keyword cppSTLbool is_constructible_v + syntax keyword cppSTLbool is_trivially_constructible_v + syntax keyword cppSTLbool is_nothrow_constructible_v + syntax keyword cppSTLbool is_default_constructible_v + syntax keyword cppSTLbool is_trivially_default_constructible_v + syntax keyword cppSTLbool is_nothrow_default_constructible_v + syntax keyword cppSTLbool is_copy_constructible_v + syntax keyword cppSTLbool is_trivially_copy_constructible_v + syntax keyword cppSTLbool is_nothrow_copy_constructible_v + syntax keyword cppSTLbool is_move_constructible_v + syntax keyword cppSTLbool is_trivially_move_constructible_v + syntax keyword cppSTLbool is_nothrow_move_constructible_v + syntax keyword cppSTLbool is_assignable_v + syntax keyword cppSTLbool is_trivially_assignable_v + syntax keyword cppSTLbool is_nothrow_assignable_v + syntax keyword cppSTLbool is_copy_assignable_v + syntax keyword cppSTLbool is_trivially_copy_assignable_v + syntax keyword cppSTLbool is_nothrow_copy_assignable_v + syntax keyword cppSTLbool is_move_assignable_v + syntax keyword cppSTLbool is_trivially_move_assignable_v + syntax keyword cppSTLbool is_nothrow_move_assignable_v + syntax keyword cppSTLbool is_destructible_v + syntax keyword cppSTLbool is_trivially_destructible_v + syntax keyword cppSTLbool is_nothrow_destructible_v + syntax keyword cppSTLbool has_virtual_destructor_v + syntax keyword cppSTLbool is_same_v + syntax keyword cppSTLbool is_base_of_v + syntax keyword cppSTLbool is_convertible_v + syntax keyword cppSTLbool is_callable_v + syntax keyword cppSTLbool is_nowthrow_callable_v + syntax keyword cppSTLbool conjunction_v + syntax keyword cppSTLbool disjunction_v + syntax keyword cppSTLbool negation_v + syntax keyword cppSTLconstant alignment_of_v + syntax keyword cppSTLconstant rank_v + syntax keyword cppSTLconstant extent_v + syntax keyword cppSTLtype bool_constant + syntax keyword cppSTLtype is_callable + syntax keyword cppSTLtype is_nowthrow_callable + syntax keyword cppSTLtype conjunction + syntax keyword cppSTLtype disjunction + syntax keyword cppSTLtype negation + + " unordered_map, unordered_set, unordered_multimap, unordered_multiset + syntax keyword cppSTLtype node_type + syntax keyword cppSTLtype insert_return_type + syntax keyword cppSTLfunction try_emplace + syntax keyword cppSTLfunction insert_or_assign + syntax keyword cppSTLfunction extract + + " utility + syntax keyword cppSTLtype in_place_tag + syntax keyword cppSTLtype in_place_t + syntax keyword cppSTLtype in_place_type_t + syntax keyword cppSTLtype in_place_index_t + syntax keyword cppSTLfunction in_place + syntax keyword cppSTLfunction as_const + + " variant + syntax keyword cppSTLtype variant + syntax keyword cppSTLtype monostate + syntax keyword cppSTLtype variant_size + syntax keyword cppSTLtype variant_alternative + syntax keyword cppSTLtype variant_alternative_t + syntax keyword cppSTLconstant variant_size_v + syntax keyword cppSTLconstant variant_npos + syntax keyword cppSTLexception bad_variant_access + syntax keyword cppSTLfunction valueless_by_exception + syntax keyword cppSTLfunction holds_alternative + syntax keyword cppSTLfunction get_if + syntax keyword cppSTLfunction visit + " syntax keyword cppSTLfunction index +endif " C++17 + + +if exists('g:cpp_concepts_highlight') && g:cpp_concepts_highlight + syntax keyword cppStatement concept + syntax keyword cppStorageClass requires + syntax keyword cppSTLtype DefaultConstructible + syntax keyword cppSTLtype MoveConstructible + syntax keyword cppSTLtype CopyConstructible + syntax keyword cppSTLtype MoveAssignable + syntax keyword cppSTLtype CopyAssignable + syntax keyword cppSTLtype Destructible + syntax keyword cppSTLtype TriviallyCopyable + syntax keyword cppSTLtype TrivialType + syntax keyword cppSTLtype StandardLayoutType + syntax keyword cppSTLtype PODType + syntax keyword cppSTLtype EqualityComparable + syntax keyword cppSTLtype LessThanComparable + syntax keyword cppSTLtype Swappable + syntax keyword cppSTLtype ValueSwappable + syntax keyword cppSTLtype NullablePointer + syntax keyword cppSTLtype Hash + syntax keyword cppSTLtype Allocator + syntax keyword cppSTLtype FunctionObject + syntax keyword cppSTLtype Callable + syntax keyword cppSTLtype Predicate + syntax keyword cppSTLtype BinaryPredicate + syntax keyword cppSTLtype Compare + syntax keyword cppSTLtype Container + syntax keyword cppSTLtype ReversibleContainer + syntax keyword cppSTLtype AllocatorAwareContainer + syntax keyword cppSTLtype SequenceContainer + syntax keyword cppSTLtype ContiguousContainer + syntax keyword cppSTLtype AssociativeContainer + syntax keyword cppSTLtype UnorderedAssociativeContainer + syntax keyword cppSTLtype DefaultInsertable + syntax keyword cppSTLtype CopyInsertable + syntax keyword cppSTLtype CopyInsertable + syntax keyword cppSTLtype MoveInsertable + syntax keyword cppSTLtype EmplaceConstructible + syntax keyword cppSTLtype Erasable + syntax keyword cppSTLtype Iterator + syntax keyword cppSTLtype InputIterator + syntax keyword cppSTLtype OutputIterator + syntax keyword cppSTLtype ForwardIterator + syntax keyword cppSTLtype BidirectionalIterator + syntax keyword cppSTLtype RandomAccessIterator + syntax keyword cppSTLtype ContiguousIterator + syntax keyword cppSTLtype UnformattedInputFunction + syntax keyword cppSTLtype FormattedInputFunction + syntax keyword cppSTLtype UnformattedOutputFunction + syntax keyword cppSTLtype FormattedOutputFunction + syntax keyword cppSTLtype SeedSequence + syntax keyword cppSTLtype UniformRandomBitGenerator + syntax keyword cppSTLtype RandomNumberEngine + syntax keyword cppSTLtype RandomNumberEngineAdaptor + syntax keyword cppSTLtype RandomNumberDistribution + syntax keyword cppSTLtype BasicLockable + syntax keyword cppSTLtype Lockable + syntax keyword cppSTLtype TimedLockable + syntax keyword cppSTLtype Mutex + syntax keyword cppSTLtype TimedMutex + syntax keyword cppSTLtype SharedMutex + syntax keyword cppSTLtype SharedTimedMutex + syntax keyword cppSTLtype UnaryTypeTrait + syntax keyword cppSTLtype BinaryTypeTrait + syntax keyword cppSTLtype TransformationTrait + syntax keyword cppSTLtype Clock + syntax keyword cppSTLtype TrivialClock + syntax keyword cppSTLtype CharTraits + syntax keyword cppSTLtype pos_type + syntax keyword cppSTLtype off_type + syntax keyword cppSTLtype BitmaskType + syntax keyword cppSTLtype NumericType + syntax keyword cppSTLtype RegexTraits + syntax keyword cppSTLtype LiteralType +endif " C++ concepts + +if !exists("cpp_no_boost") syntax keyword cppSTLnamespace boost syntax keyword cppSTLcast lexical_cast -endif " Boost +endif " boost + " Default highlighting if version >= 508 || !exists("did_cpp_syntax_inits") @@ -1385,6 +1965,9 @@ if version >= 508 || !exists("did_cpp_syntax_inits") else command -nargs=+ HiLink hi def link <args> endif + HiLink cppSTLbool Boolean + HiLink cppStorageClass StorageClass + HiLink cppStatement Statement HiLink cppSTLfunction Function HiLink cppSTLfunctional Typedef HiLink cppSTLconstant Constant @@ -1396,7 +1979,7 @@ if version >= 508 || !exists("did_cpp_syntax_inits") HiLink cppSTLenum Typedef HiLink cppSTLios Function HiLink cppSTLcast Statement " be consistent with official syntax - HiLink cppRawString String + HiLink cppRawString String HiLink cppRawDelimiter Delimiter delcommand HiLink endif |