diff options
Diffstat (limited to '')
| -rw-r--r-- | after/syntax/c.vim | 321 | ||||
| -rw-r--r-- | after/syntax/cpp.vim | 2297 | 
2 files changed, 0 insertions, 2618 deletions
| diff --git a/after/syntax/c.vim b/after/syntax/c.vim deleted file mode 100644 index 471ae6df..00000000 --- a/after/syntax/c.vim +++ /dev/null @@ -1,321 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'c++11') == -1 - -" Vim syntax file -" Language: C Additions -" Maintainer: Jon Haggblad <jon@haeggblad.com> -" Contributor: Mikhail Wolfson <mywolfson@gmail.com> -" URL: http://www.haeggblad.com -" Last Change: 6 Sep 2014 -" Version: 0.3 -" Changelog: -"   0.3 - integration of aftersyntaxc.vim -"   0.2 - Cleanup -"   0.1 - initial version. -" -" Syntax highlighting for functions in C. -" -" Based on: -"   http://stackoverflow.com/questions/736701/class-function-names-highlighting-in-vim - -" ----------------------------------------------------------------------------- -"  Highlight function names. -" ----------------------------------------------------------------------------- -if !exists('g:cpp_no_function_highlight') -    syn match    cCustomParen    transparent "(" contains=cParen contains=cCppParen -    syn match    cCustomFunc     "\w\+\s*(\@=" contains=cCustomParen -    hi def link cCustomFunc  Function -endif - -" ----------------------------------------------------------------------------- -"  Highlight member variable names. -" ----------------------------------------------------------------------------- -if exists('g:cpp_member_variable_highlight') && g:cpp_member_variable_highlight -    syn match   cCustomDot    "\." contained -    syn match   cCustomPtr    "->" contained -    syn match   cCustomMemVar "\(\.\|->\)\h\w*" contains=cCustomDot,cCustomPtr -    hi def link cCustomMemVar Function -endif - -" ----------------------------------------------------------------------------- -"  Highlight POSIX functions. -" ----------------------------------------------------------------------------- -if exists('g:cpp_posix_standard') && g:cpp_posix_standard -	syn keyword cPOSIXFunction 	socket accept bind connect getsockname -	syn keyword cPOSIXFunction 	listen recv recvfrom recvmsg -	syn keyword cPOSIXFunction 	send sendto sendmsg setsockopt socketpair -	syn keyword cPOSIXFunction 	htonl htons ntohl ntohs -	syn keyword cPOSIXFunction 	inet_ntop inet_pton getaddrinfo -	syn keyword cPOSIXFunction 	poll select pselect -	hi def link cPOSIXFunction Function -endif - -" ----------------------------------------------------------------------------- -"  Source: aftersyntaxc.vim -" ----------------------------------------------------------------------------- - -" Common ANSI-standard functions -syn keyword cAnsiFunction	MULU_ DIVU_ MODU_ MUL_ DIV_ MOD_ -syn keyword cAnsiFunction	main typeof -syn keyword cAnsiFunction	open close read write lseek dup dup2 -syn keyword cAnsiFunction	fcntl ioctl -syn keyword cAnsiFunction	wctrans towctrans towupper -syn keyword cAnsiFunction	towlower wctype iswctype -syn keyword cAnsiFunction	iswxdigit iswupper iswspace -syn keyword cAnsiFunction	iswpunct iswprint iswlower -syn keyword cAnsiFunction	iswgraph iswdigit iswcntrl -syn keyword cAnsiFunction	iswalpha iswalnum wcsrtombs -syn keyword cAnsiFunction	mbsrtowcs wcrtomb mbrtowc -syn keyword cAnsiFunction	mbrlen mbsinit wctob -syn keyword cAnsiFunction	btowc wcsfxtime wcsftime -syn keyword cAnsiFunction	wmemset wmemmove wmemcpy -syn keyword cAnsiFunction	wmemcmp wmemchr wcstok -syn keyword cAnsiFunction	wcsstr wcsspn wcsrchr -syn keyword cAnsiFunction	wcspbrk wcslen wcscspn -syn keyword cAnsiFunction	wcschr wcsxfrm wcsncmp -syn keyword cAnsiFunction	wcscoll wcscmp wcsncat -syn keyword cAnsiFunction	wcscat wcsncpy wcscpy -syn keyword cAnsiFunction	wcstoull wcstoul wcstoll -syn keyword cAnsiFunction	wcstol wcstold wcstof -syn keyword cAnsiFunction	wcstod ungetwc putwchar -syn keyword cAnsiFunction	putwc getwchar getwc -syn keyword cAnsiFunction	fwide fputws fputwc -syn keyword cAnsiFunction	fgetws fgetwc wscanf -syn keyword cAnsiFunction	wprintf vwscanf vwprintf -syn keyword cAnsiFunction	vswscanf vswprintf vfwscanf -syn keyword cAnsiFunction	vfwprintf swscanf swprintf -syn keyword cAnsiFunction	fwscanf fwprintf zonetime -syn keyword cAnsiFunction	strfxtime strftime localtime -syn keyword cAnsiFunction	gmtime ctime asctime -syn keyword cAnsiFunction	time mkxtime mktime -syn keyword cAnsiFunction	difftime clock strlen -syn keyword cAnsiFunction	strerror memset strtok -syn keyword cAnsiFunction	strstr strspn strrchr -syn keyword cAnsiFunction	strpbrk strcspn strchr -syn keyword cAnsiFunction	memchr strxfrm strncmp -syn keyword cAnsiFunction	strcoll strcmp memcmp -syn keyword cAnsiFunction	strncat strcat strncpy -syn keyword cAnsiFunction	strcpy memmove memcpy -syn keyword cAnsiFunction	wcstombs mbstowcs wctomb -syn keyword cAnsiFunction	mbtowc mblen lldiv -syn keyword cAnsiFunction	ldiv div llabs -syn keyword cAnsiFunction	labs abs qsort -"syn keyword cAnsiFunction	bsearch system getenv -syn keyword cAnsiFunction	bsearch getenv -syn keyword cAnsiFunction	exit atexit abort -syn keyword cAnsiFunction	realloc malloc free -syn keyword cAnsiFunction	calloc srand rand -syn keyword cAnsiFunction	strtoull strtoul strtoll -syn keyword cAnsiFunction	strtol strtold strtof -syn keyword cAnsiFunction	strtod atoll atol -syn keyword cAnsiFunction	atoi atof perror -syn keyword cAnsiFunction	ferror feof clearerr -syn keyword cAnsiFunction	rewind ftell fsetpos -syn keyword cAnsiFunction	fseek fgetpos fwrite -syn keyword cAnsiFunction	fread ungetc puts -syn keyword cAnsiFunction	putchar putc gets -syn keyword cAnsiFunction	getchar getc fputs -syn keyword cAnsiFunction	fputc fgets fgetc -syn keyword cAnsiFunction	vsscanf vsprintf vsnprintf -syn keyword cAnsiFunction	vscanf vprintf vfscanf -syn keyword cAnsiFunction	vfprintf sscanf sprintf -syn keyword cAnsiFunction	snprintf scanf printf -syn keyword cAnsiFunction	fscanf fprintf setvbuf -syn keyword cAnsiFunction	setbuf freopen fopen -syn keyword cAnsiFunction	fflush fclose tmpnam -syn keyword cAnsiFunction	tmpfile rename remove -syn keyword cAnsiFunction	offsetof va_start va_end -syn keyword cAnsiFunction	va_copy va_arg raise signal -syn keyword cAnsiFunction	longjmp setjmp isunordered -syn keyword cAnsiFunction	islessgreater islessequal isless -syn keyword cAnsiFunction	isgreaterequal isgreater fmal -syn keyword cAnsiFunction	fmaf fma fminl -syn keyword cAnsiFunction	fminf fmin fmaxl -syn keyword cAnsiFunction	fmaxf fmax fdiml -syn keyword cAnsiFunction	fdimf fdim nextafterxl -syn keyword cAnsiFunction	nextafterxf nextafterx nextafterl -syn keyword cAnsiFunction	nextafterf nextafter nanl -syn keyword cAnsiFunction	nanf nan copysignl -syn keyword cAnsiFunction	copysignf copysign remquol -syn keyword cAnsiFunction	remquof remquo remainderl -syn keyword cAnsiFunction	remainderf remainder fmodl -syn keyword cAnsiFunction	fmodf fmod truncl -syn keyword cAnsiFunction	truncf trunc llroundl -syn keyword cAnsiFunction	llroundf llround lroundl -syn keyword cAnsiFunction	lroundf lround roundl -syn keyword cAnsiFunction	roundf round llrintl -syn keyword cAnsiFunction	llrintf llrint lrintl -syn keyword cAnsiFunction	lrintf lrint rintl -syn keyword cAnsiFunction	rintf rint nearbyintl -syn keyword cAnsiFunction	nearbyintf nearbyint floorl -syn keyword cAnsiFunction	floorf floor ceill -syn keyword cAnsiFunction	ceilf ceil tgammal -syn keyword cAnsiFunction	tgammaf tgamma lgammal -syn keyword cAnsiFunction	lgammaf lgamma erfcl -syn keyword cAnsiFunction	erfcf erfc erfl -syn keyword cAnsiFunction	erff erf sqrtl -syn keyword cAnsiFunction	sqrtf sqrt powl -syn keyword cAnsiFunction	powf pow hypotl -syn keyword cAnsiFunction	hypotf hypot fabsl -syn keyword cAnsiFunction	fabsf fabs cbrtl -syn keyword cAnsiFunction	cbrtf cbrt scalblnl -syn keyword cAnsiFunction	scalblnf scalbln scalbnl -syn keyword cAnsiFunction	scalbnf scalbn modfl -syn keyword cAnsiFunction	modff modf logbl -syn keyword cAnsiFunction	logbf logb log2l -syn keyword cAnsiFunction	log2f log2 log1pl -syn keyword cAnsiFunction	log1pf log1p log10l -syn keyword cAnsiFunction	log10f log10 logl -syn keyword cAnsiFunction	logf log ldexpl -syn keyword cAnsiFunction	ldexpf ldexp ilogbl -syn keyword cAnsiFunction	ilogbf ilogb frexpl -syn keyword cAnsiFunction	frexpf frexp expm1l -syn keyword cAnsiFunction	expm1f expm1 exp2l -syn keyword cAnsiFunction	exp2f exp2 expl -syn keyword cAnsiFunction	expf exp tanhl -syn keyword cAnsiFunction	tanhf tanh sinhl -syn keyword cAnsiFunction	sinhf sinh coshl -syn keyword cAnsiFunction	coshf cosh atanhl -syn keyword cAnsiFunction	atanhf atanh asinhl -syn keyword cAnsiFunction	asinhf asinh acoshl -syn keyword cAnsiFunction	acoshf acosh tanl -syn keyword cAnsiFunction	tanf tan sinl -syn keyword cAnsiFunction	sinf sin cosl -syn keyword cAnsiFunction	cosf cos atan2l -syn keyword cAnsiFunction	atan2f atan2 atanl -syn keyword cAnsiFunction	atanf atan asinl -syn keyword cAnsiFunction	asinf asin acosl -syn keyword cAnsiFunction	acosf acos signbit -syn keyword cAnsiFunction	isnormal isnan isinf -syn keyword cAnsiFunction	isfinite fpclassify localeconv -syn keyword cAnsiFunction	setlocale wcstoumax wcstoimax -syn keyword cAnsiFunction	strtoumax strtoimax feupdateenv -syn keyword cAnsiFunction	fesetenv feholdexcept fegetenv -syn keyword cAnsiFunction	fesetround fegetround fetestexcept -syn keyword cAnsiFunction	fesetexceptflag feraiseexcept fegetexceptflag -syn keyword cAnsiFunction	feclearexcept toupper tolower -syn keyword cAnsiFunction	isxdigit isupper isspace -syn keyword cAnsiFunction	ispunct isprint islower -syn keyword cAnsiFunction	isgraph isdigit iscntrl -syn keyword cAnsiFunction	isalpha isalnum creall -syn keyword cAnsiFunction	crealf creal cprojl -syn keyword cAnsiFunction	cprojf cproj conjl -syn keyword cAnsiFunction	conjf conj cimagl -syn keyword cAnsiFunction	cimagf cimag cargl -syn keyword cAnsiFunction	cargf carg csqrtl -syn keyword cAnsiFunction	csqrtf csqrt cpowl -syn keyword cAnsiFunction	cpowf cpow cabsl -syn keyword cAnsiFunction	cabsf cabs clogl -syn keyword cAnsiFunction	clogf clog cexpl -syn keyword cAnsiFunction	cexpf cexp ctanhl -syn keyword cAnsiFunction	ctanhf ctanh csinhl -syn keyword cAnsiFunction	csinhf csinh ccoshl -syn keyword cAnsiFunction	ccoshf ccosh catanhl -syn keyword cAnsiFunction	catanhf catanh casinhl -syn keyword cAnsiFunction	casinhf casinh cacoshl -syn keyword cAnsiFunction	cacoshf cacosh ctanl -syn keyword cAnsiFunction	ctanf ctan csinl -syn keyword cAnsiFunction	csinf csin ccosl -syn keyword cAnsiFunction	ccosf ccos catanl -syn keyword cAnsiFunction	catanf catan casinl -syn keyword cAnsiFunction	casinf casin cacosl -syn keyword cAnsiFunction	cacosf cacos assert -syn keyword cAnsiFunction	UINTMAX_C INTMAX_C UINT64_C -syn keyword cAnsiFunction	UINT32_C UINT16_C UINT8_C -syn keyword cAnsiFunction	INT64_C INT32_C INT16_C INT8_C - -" Common ANSI-standard Names -syn keyword	cAnsiName	PRId8 PRIi16 PRIo32 PRIu64 -syn keyword	cAnsiName	PRId16 PRIi32 PRIo64 PRIuLEAST8 -syn keyword	cAnsiName	PRId32 PRIi64 PRIoLEAST8 PRIuLEAST16 -syn keyword	cAnsiName	PRId64 PRIiLEAST8 PRIoLEAST16 PRIuLEAST32 -syn keyword	cAnsiName	PRIdLEAST8 PRIiLEAST16 PRIoLEAST32 PRIuLEAST64 -syn keyword	cAnsiName	PRIdLEAST16 PRIiLEAST32 PRIoLEAST64 PRIuFAST8 -syn keyword	cAnsiName	PRIdLEAST32 PRIiLEAST64 PRIoFAST8 PRIuFAST16 -syn keyword	cAnsiName	PRIdLEAST64 PRIiFAST8 PRIoFAST16 PRIuFAST32 -syn keyword	cAnsiName	PRIdFAST8 PRIiFAST16 PRIoFAST32 PRIuFAST64 -syn keyword	cAnsiName	PRIdFAST16 PRIiFAST32 PRIoFAST64 PRIuMAX -syn keyword	cAnsiName	PRIdFAST32 PRIiFAST64 PRIoMAX PRIuPTR -syn keyword	cAnsiName	PRIdFAST64 PRIiMAX PRIoPTR PRIx8 -syn keyword	cAnsiName	PRIdMAX PRIiPTR PRIu8 PRIx16 -syn keyword	cAnsiName	PRIdPTR PRIo8 PRIu16 PRIx32 -syn keyword	cAnsiName	PRIi8 PRIo16 PRIu32 PRIx64 - -syn keyword	cAnsiName	PRIxLEAST8 SCNd8 SCNiFAST32 SCNuLEAST32 -syn keyword	cAnsiName	PRIxLEAST16 SCNd16 SCNiFAST64 SCNuLEAST64 -syn keyword	cAnsiName	PRIxLEAST32 SCNd32 SCNiMAX SCNuFAST8 -syn keyword	cAnsiName	PRIxLEAST64 SCNd64 SCNiPTR SCNuFAST16 -syn keyword	cAnsiName	PRIxFAST8 SCNdLEAST8 SCNo8 SCNuFAST32 -syn keyword	cAnsiName	PRIxFAST16 SCNdLEAST16 SCNo16 SCNuFAST64 -syn keyword	cAnsiName	PRIxFAST32 SCNdLEAST32 SCNo32 SCNuMAX -syn keyword	cAnsiName	PRIxFAST64 SCNdLEAST64 SCNo64 SCNuPTR -syn keyword	cAnsiName	PRIxMAX SCNdFAST8 SCNoLEAST8 SCNx8 -syn keyword	cAnsiName	PRIxPTR SCNdFAST16 SCNoLEAST16 SCNx16 -syn keyword	cAnsiName	PRIX8 SCNdFAST32 SCNoLEAST32 SCNx32 -syn keyword	cAnsiName	PRIX16 SCNdFAST64 SCNoLEAST64 SCNx64 -syn keyword	cAnsiName	PRIX32 SCNdMAX SCNoFAST8 SCNxLEAST8 -syn keyword	cAnsiName	PRIX64 SCNdPTR SCNoFAST16 SCNxLEAST16 -syn keyword	cAnsiName	PRIXLEAST8 SCNi8 SCNoFAST32 SCNxLEAST32 -syn keyword	cAnsiName	PRIXLEAST16 SCNi16 SCNoFAST64 SCNxLEAST64 -syn keyword	cAnsiName	PRIXLEAST32 SCNi32 SCNoMAX SCNxFAST8 -syn keyword	cAnsiName	PRIXLEAST64 SCNi64 SCNoPTR SCNxFAST16 -syn keyword	cAnsiName	PRIXFAST8 SCNiLEAST8 SCNu8 SCNxFAST32 -syn keyword	cAnsiName	PRIXFAST16 SCNiLEAST16 SCNu16 SCNxFAST64 -syn keyword	cAnsiName	PRIXFAST32 SCNiLEAST32 SCNu32 SCNxMAX -syn keyword	cAnsiName	PRIXFAST64 SCNiLEAST64 SCNu64 SCNxPTR -syn keyword	cAnsiName	PRIXMAX SCNiFAST8 SCNuLEAST8 -syn keyword	cAnsiName	PRIXPTR SCNiFAST16 SCNuLEAST16 - -syn keyword	cAnsiName	errno environ - -syn keyword	cAnsiName	STDC CX_LIMITED_RANGE -syn keyword	cAnsiName	STDC FENV_ACCESS -syn keyword	cAnsiName	STDC FP_CONTRACT - -syn keyword	cAnsiName	and bitor not_eq xor -syn keyword	cAnsiName	and_eq compl or xor_eq -syn keyword	cAnsiName	bitand not or_eq - -hi def link cAnsiFunction cFunction -hi def link cAnsiName cIdentifier -hi def link cFunction Function -hi def link cIdentifier Identifier - -" Booleans -syn keyword cBoolean true false TRUE FALSE -hi def link cBoolean Boolean - -" ----------------------------------------------------------------------------- -"  Additional optional highlighting -" ----------------------------------------------------------------------------- - -" Operators -"syn match cOperator	"\(<<\|>>\|[-+*/%&^|<>!=]\)=" -"syn match cOperator	"<<\|>>\|&&\|||\|++\|--\|->" -"syn match cOperator	"[.!~*&%<>^|=,+-]" -"syn match cOperator	"/[^/*=]"me=e-1 -"syn match cOperator	"/$" -"syn match cOperator "&&\|||" -"syn match cOperator	"[][]" -" -"" Preprocs -"syn keyword cDefined defined contained containedin=cDefine -"hi def link cDefined cDefine - -"" Functions -"syn match cUserFunction "\<\h\w*\>\(\s\|\n\)*("me=e-1 contains=cType,cDelimiter,cDefine -"syn match cUserFunctionPointer "(\s*\*\s*\h\w*\s*)\(\s\|\n\)*(" contains=cDelimiter,cOperator -" -"hi def link cUserFunction cFunction -"hi def link cUserFunctionPointer cFunction -" -"" Delimiters -"syn match cDelimiter    "[();\\]" -"" foldmethod=syntax fix, courtesy of Ivan Freitas -"syn match cBraces display "[{}]" - -" Links -"hi def link cDelimiter Delimiter -" foldmethod=syntax fix, courtesy of Ivan Freitas -"hi def link cBraces Delimiter - -endif diff --git a/after/syntax/cpp.vim b/after/syntax/cpp.vim deleted file mode 100644 index e88c8664..00000000 --- a/after/syntax/cpp.vim +++ /dev/null @@ -1,2297 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'c++11') == -1 - -" Vim syntax file -" Language: C++ Additions -" Maintainer: Jon Haggblad <jon@haeggblad.com> -" URL: http://www.haeggblad.com -" Last Change: 29 Jun 2019 -" 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/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 -" adds highlighting of (user defined) functions and the containers and types -" in the standard library / boost. -" -" Based on: -"   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/q/736701 -" ----------------------------------------------------------------------------- - -" Functions -if !exists('g:cpp_no_function_highlight') -    syn match   cCustomParen    transparent "(" contains=cParen contains=cCppParen -    syn match   cCustomFunc     "\w\+\s*(\@=" -    hi def link cCustomFunc  Function -endif - -" 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 -endif - -" Clear cppStructure and replace "class" and/or "template" with matches -" based on user configuration -let s:needs_cppstructure_match = 0 -if exists('g:cpp_class_decl_highlight') && g:cpp_class_decl_highlight -	let s:needs_cppstructure_match += 1 -endif -if exists('g:cpp_experimental_template_highlight') && g:cpp_experimental_template_highlight -	let s:needs_cppstructure_match += 2 -endif - -syn clear cppStructure -if s:needs_cppstructure_match == 0 -	syn keyword cppStructure typename namespace template class -elseif s:needs_cppstructure_match == 1 -	syn keyword cppStructure typename namespace template -elseif s:needs_cppstructure_match == 2 -	syn keyword cppStructure typename namespace class -elseif s:needs_cppstructure_match == 3 -	syn keyword cppStructure typename namespace -endif -unlet s:needs_cppstructure_match - - -" Class name declaration -if exists('g:cpp_class_decl_highlight') && g:cpp_class_decl_highlight -	syn match cCustomClassKey "\<class\>" -	hi def link cCustomClassKey cppStructure - -	" Clear cppAccess entirely and redefine as matches -	syn clear cppAccess -	syn match cCustomAccessKey "\<private\>" -	syn match cCustomAccessKey "\<public\>" -	syn match cCustomAccessKey "\<protected\>" -	hi def link cCustomAccessKey cppAccess - -	" Match the parts of a class declaration -	syn match cCustomClassName "\<class\_s\+\w\+\>" -				\ contains=cCustomClassKey -	syn match cCustomClassName "\<private\_s\+\w\+\>" -				\ contains=cCustomAccessKey -	syn match cCustomClassName "\<public\_s\+\w\+\>" -				\ contains=cCustomAccessKey -	syn match cCustomClassName "\<protected\_s\+\w\+\>" -				\ contains=cCustomAccessKey -	hi def link cCustomClassName Function -endif -" 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 -    hi def link cCustomAngleBracketEnd  cCustomAngleBracketContent - -    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 -    hi def link cCustomTemplateClass cCustomClass - -    syn match   cCustomTemplate "\<template\>" -    hi def link cCustomTemplate  cppStructure -    syn match   cTemplateDeclare "\<template\_s*<\_[^;()]\{-}>" -                \ contains=cppStructure,cCustomTemplate,cCustomClassKey,cCustomAngleBracketStart - -    " Remove 'operator' from cppOperator and use a custom match -    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\>" -    hi def link cCustomOperator  cppStructure -    syn match   cTemplateOperatorDeclare "\<operator\_s*<\_[^;()]\{-}>[<>]=\?" -                \ contains=cppOperator,cCustomOperator,cCustomAngleBracketStart -endif - -" Alternative syntax that is used in: -"  http://www.vim.org/scripts/script.php?script_id=3064 -"syn match cUserFunction "\<\h\w*\>\(\s\|\n\)*("me=e-1 contains=cType,cDelimiter,cDefine -"hi def link cCustomFunc  Function - -" Cluster for all the stdlib functions defined below -syn cluster cppSTLgroup     contains=cppSTLfunction,cppSTLfunctional,cppSTLconstant,cppSTLnamespace,cppSTLtype,cppSTLexception,cppSTLiterator,cppSTLiterator_tag,cppSTLenum,cppSTLios,cppSTLcast - - -" ----------------------------------------------------------------------------- -"  Standard library types and functions. -" -" 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 -syntax keyword cppSTLconstant clog -syntax keyword cppSTLconstant cout -syntax keyword cppSTLconstant digits -syntax keyword cppSTLconstant digits10 -syntax keyword cppSTLconstant eofbit -syntax keyword cppSTLconstant failbit -syntax keyword cppSTLconstant goodbit -syntax keyword cppSTLconstant has_denorm -syntax keyword cppSTLconstant has_denorm_loss -syntax keyword cppSTLconstant has_infinity -syntax keyword cppSTLconstant has_quiet_NaN -syntax keyword cppSTLconstant has_signaling_NaN -syntax keyword cppSTLconstant is_bounded -syntax keyword cppSTLconstant is_exact -syntax keyword cppSTLconstant is_iec559 -syntax keyword cppSTLconstant is_integer -syntax keyword cppSTLconstant is_modulo -syntax keyword cppSTLconstant is_signed -syntax keyword cppSTLconstant is_specialized -syntax keyword cppSTLconstant max_digits10 -syntax keyword cppSTLconstant max_exponent -syntax keyword cppSTLconstant max_exponent10 -syntax keyword cppSTLconstant min_exponent -syntax keyword cppSTLconstant min_exponent10 -syntax keyword cppSTLconstant nothrow -syntax keyword cppSTLconstant npos -syntax keyword cppSTLconstant radix -syntax keyword cppSTLconstant round_style -syntax keyword cppSTLconstant tinyness_before -syntax keyword cppSTLconstant traps -syntax keyword cppSTLconstant wcerr -syntax keyword cppSTLconstant wcin -syntax keyword cppSTLconstant wclog -syntax keyword cppSTLconstant wcout -syntax keyword cppSTLexception bad_alloc -syntax keyword cppSTLexception bad_array_new_length -syntax keyword cppSTLexception bad_exception -syntax keyword cppSTLexception bad_typeid bad_cast -syntax keyword cppSTLexception domain_error -syntax keyword cppSTLexception exception -syntax keyword cppSTLexception invalid_argument -syntax keyword cppSTLexception length_error -syntax keyword cppSTLexception logic_error -syntax keyword cppSTLexception out_of_range -syntax keyword cppSTLexception overflow_error -syntax keyword cppSTLexception range_error -syntax keyword cppSTLexception runtime_error -syntax keyword cppSTLexception underflow_error -syntax keyword cppSTLfunction abort -syntax keyword cppSTLfunction abs -syntax keyword cppSTLfunction accumulate -syntax keyword cppSTLfunction acos -syntax keyword cppSTLfunction adjacent_difference -syntax keyword cppSTLfunction adjacent_find -syntax keyword cppSTLfunction adjacent_find_if -syntax keyword cppSTLfunction advance -syntax keyword cppSTLfunctional binary_function -syntax keyword cppSTLfunctional binary_negate -syntax keyword cppSTLfunctional bit_and -syntax keyword cppSTLfunctional bit_not -syntax keyword cppSTLfunctional bit_or -syntax keyword cppSTLfunctional bit_xor -syntax keyword cppSTLfunctional divides -syntax keyword cppSTLfunctional equal_to -syntax keyword cppSTLfunctional greater -syntax keyword cppSTLfunctional greater_equal -syntax keyword cppSTLfunctional less -syntax keyword cppSTLfunctional less_equal -syntax keyword cppSTLfunctional logical_and -syntax keyword cppSTLfunctional logical_not -syntax keyword cppSTLfunctional logical_or -syntax keyword cppSTLfunctional minus -syntax keyword cppSTLfunctional modulus -syntax keyword cppSTLfunctional multiplies -syntax keyword cppSTLfunctional negate -syntax keyword cppSTLfunctional not_equal_to -syntax keyword cppSTLfunctional plus -syntax keyword cppSTLfunctional unary_function -syntax keyword cppSTLfunctional unary_negate -"syntax keyword cppSTLfunction any -syntax keyword cppSTLfunction append -syntax keyword cppSTLfunction arg -syntax keyword cppSTLfunction asctime -syntax keyword cppSTLfunction asin -syntax keyword cppSTLfunction assert -syntax keyword cppSTLfunction assign -syntax keyword cppSTLfunction at -syntax keyword cppSTLfunction atan -syntax keyword cppSTLfunction atan2 -syntax keyword cppSTLfunction atexit -syntax keyword cppSTLfunction atof -syntax keyword cppSTLfunction atoi -syntax keyword cppSTLfunction atol -syntax keyword cppSTLfunction atoll -syntax keyword cppSTLfunction back -syntax keyword cppSTLfunction back_inserter -syntax keyword cppSTLfunction bad -syntax keyword cppSTLfunction beg -"syntax keyword cppSTLfunction begin -syntax keyword cppSTLfunction binary_compose -syntax keyword cppSTLfunction binary_negate -syntax keyword cppSTLfunction binary_search -syntax keyword cppSTLfunction bind1st -syntax keyword cppSTLfunction bind2nd -syntax keyword cppSTLfunction binder1st -syntax keyword cppSTLfunction binder2nd -syntax keyword cppSTLfunction bsearch -syntax keyword cppSTLfunction calloc -syntax keyword cppSTLfunction capacity -syntax keyword cppSTLfunction ceil -syntax keyword cppSTLfunction clear -syntax keyword cppSTLfunction clearerr -syntax keyword cppSTLfunction clock -syntax keyword cppSTLfunction close -syntax keyword cppSTLfunction compare -syntax keyword cppSTLfunction conj -syntax keyword cppSTLfunction construct -syntax keyword cppSTLfunction copy -syntax keyword cppSTLfunction copy_backward -syntax keyword cppSTLfunction cos -syntax keyword cppSTLfunction cosh -syntax keyword cppSTLfunction count -syntax keyword cppSTLfunction count_if -syntax keyword cppSTLfunction c_str -syntax keyword cppSTLfunction ctime -"syntax keyword cppSTLfunction data -syntax keyword cppSTLfunction denorm_min -syntax keyword cppSTLfunction destroy -syntax keyword cppSTLfunction difftime -syntax keyword cppSTLfunction distance -syntax keyword cppSTLfunction div -syntax keyword cppSTLfunction empty -"syntax keyword cppSTLfunction end -syntax keyword cppSTLfunction eof -syntax keyword cppSTLfunction epsilon -syntax keyword cppSTLfunction equal -syntax keyword cppSTLfunction equal_range -syntax keyword cppSTLfunction erase -syntax keyword cppSTLfunction exit -syntax keyword cppSTLfunction exp -syntax keyword cppSTLfunction fabs -syntax keyword cppSTLfunction fail -syntax keyword cppSTLfunction failure -syntax keyword cppSTLfunction fclose -syntax keyword cppSTLfunction feof -syntax keyword cppSTLfunction ferror -syntax keyword cppSTLfunction fflush -syntax keyword cppSTLfunction fgetc -syntax keyword cppSTLfunction fgetpos -syntax keyword cppSTLfunction fgets -syntax keyword cppSTLfunction fill -syntax keyword cppSTLfunction fill_n -syntax keyword cppSTLfunction find -syntax keyword cppSTLfunction find_end -syntax keyword cppSTLfunction find_first_not_of -syntax keyword cppSTLfunction find_first_of -syntax keyword cppSTLfunction find_if -syntax keyword cppSTLfunction find_last_not_of -syntax keyword cppSTLfunction find_last_of -syntax keyword cppSTLfunction first -syntax keyword cppSTLfunction flags -syntax keyword cppSTLfunction flip -syntax keyword cppSTLfunction floor -syntax keyword cppSTLfunction flush -syntax keyword cppSTLfunction fmod -syntax keyword cppSTLfunction fopen -syntax keyword cppSTLfunction for_each -syntax keyword cppSTLfunction fprintf -syntax keyword cppSTLfunction fputc -syntax keyword cppSTLfunction fputs -syntax keyword cppSTLfunction fread -syntax keyword cppSTLfunction free -syntax keyword cppSTLfunction freopen -syntax keyword cppSTLfunction frexp -syntax keyword cppSTLfunction front -syntax keyword cppSTLfunction fscanf -syntax keyword cppSTLfunction fseek -syntax keyword cppSTLfunction fsetpos -syntax keyword cppSTLfunction ftell -syntax keyword cppSTLfunction fwide -syntax keyword cppSTLfunction fwprintf -syntax keyword cppSTLfunction fwrite -syntax keyword cppSTLfunction fwscanf -syntax keyword cppSTLfunction gcount -syntax keyword cppSTLfunction generate -syntax keyword cppSTLfunction generate_n -syntax keyword cppSTLfunction get -syntax keyword cppSTLfunction get_allocator -syntax keyword cppSTLfunction getc -syntax keyword cppSTLfunction getchar -syntax keyword cppSTLfunction getenv -syntax keyword cppSTLfunction getline -syntax keyword cppSTLfunction gets -syntax keyword cppSTLfunction get_temporary_buffer -syntax keyword cppSTLfunction gmtime -syntax keyword cppSTLfunction good -syntax keyword cppSTLfunction ignore -syntax keyword cppSTLfunction imag -syntax keyword cppSTLfunction in -syntax keyword cppSTLfunction includes -syntax keyword cppSTLfunction infinity -syntax keyword cppSTLfunction inner_product -syntax keyword cppSTLfunction inplace_merge -syntax keyword cppSTLfunction insert -syntax keyword cppSTLfunction inserter -syntax keyword cppSTLfunction ios -syntax keyword cppSTLfunction ios_base -syntax keyword cppSTLfunction iostate -syntax keyword cppSTLfunction iota -syntax keyword cppSTLfunction isalnum -syntax keyword cppSTLfunction isalpha -syntax keyword cppSTLfunction iscntrl -syntax keyword cppSTLfunction isdigit -syntax keyword cppSTLfunction isgraph -syntax keyword cppSTLfunction is_heap -syntax keyword cppSTLfunction islower -syntax keyword cppSTLfunction is_open -syntax keyword cppSTLfunction isprint -syntax keyword cppSTLfunction ispunct -syntax keyword cppSTLfunction isspace -syntax keyword cppSTLfunction isupper -syntax keyword cppSTLfunction isxdigit -syntax keyword cppSTLfunction iterator_category -syntax keyword cppSTLfunction iter_swap -syntax keyword cppSTLfunction jmp_buf -syntax keyword cppSTLfunction key_comp -syntax keyword cppSTLfunction labs -syntax keyword cppSTLfunction ldexp -syntax keyword cppSTLfunction ldiv -syntax keyword cppSTLfunction length -syntax keyword cppSTLfunction lexicographical_compare -syntax keyword cppSTLfunction lexicographical_compare_3way -syntax keyword cppSTLfunction llabs -syntax keyword cppSTLfunction lldiv -syntax keyword cppSTLfunction localtime -syntax keyword cppSTLfunction log -syntax keyword cppSTLfunction log10 -syntax keyword cppSTLfunction longjmp -syntax keyword cppSTLfunction lower_bound -syntax keyword cppSTLfunction make_heap -syntax keyword cppSTLfunction make_pair -syntax keyword cppSTLfunction malloc -syntax keyword cppSTLfunction max -syntax keyword cppSTLfunction max_element -syntax keyword cppSTLfunction max_size -syntax keyword cppSTLfunction memchr -syntax keyword cppSTLfunction memcpy -syntax keyword cppSTLfunction mem_fun -syntax keyword cppSTLfunction mem_fun_ref -syntax keyword cppSTLfunction memmove -syntax keyword cppSTLfunction memset -syntax keyword cppSTLfunction merge -syntax keyword cppSTLfunction min -syntax keyword cppSTLfunction min_element -syntax keyword cppSTLfunction mismatch -syntax keyword cppSTLfunction mktime -syntax keyword cppSTLfunction modf -syntax keyword cppSTLfunction next_permutation -syntax keyword cppSTLfunction none -syntax keyword cppSTLfunction norm -syntax keyword cppSTLfunction not1 -syntax keyword cppSTLfunction not2 -syntax keyword cppSTLfunction nth_element -syntax keyword cppSTLtype numeric_limits -syntax keyword cppSTLfunction open -syntax keyword cppSTLfunction partial_sort -syntax keyword cppSTLfunction partial_sort_copy -syntax keyword cppSTLfunction partial_sum -syntax keyword cppSTLfunction partition -syntax keyword cppSTLfunction peek -syntax keyword cppSTLfunction perror -syntax keyword cppSTLfunction polar -syntax keyword cppSTLfunction pop -syntax keyword cppSTLfunction pop_back -syntax keyword cppSTLfunction pop_front -syntax keyword cppSTLfunction pop_heap -syntax keyword cppSTLfunction pow -syntax keyword cppSTLfunction power -syntax keyword cppSTLfunction precision -syntax keyword cppSTLfunction prev_permutation -syntax keyword cppSTLfunction printf -syntax keyword cppSTLfunction ptr_fun -syntax keyword cppSTLfunction push -syntax keyword cppSTLfunction push_back -syntax keyword cppSTLfunction push_front -syntax keyword cppSTLfunction push_heap -syntax keyword cppSTLfunction put -syntax keyword cppSTLfunction putback -syntax keyword cppSTLfunction putc -syntax keyword cppSTLfunction putchar -syntax keyword cppSTLfunction puts -syntax keyword cppSTLfunction qsort -syntax keyword cppSTLfunction quiet_NaN -syntax keyword cppSTLfunction raise -syntax keyword cppSTLfunction rand -syntax keyword cppSTLfunction random_sample -syntax keyword cppSTLfunction random_sample_n -syntax keyword cppSTLfunction random_shuffle -syntax keyword cppSTLfunction rbegin -syntax keyword cppSTLfunction rdbuf -syntax keyword cppSTLfunction rdstate -syntax keyword cppSTLfunction read -syntax keyword cppSTLfunction real -syntax keyword cppSTLfunction realloc -syntax keyword cppSTLfunction remove -syntax keyword cppSTLfunction remove_copy -syntax keyword cppSTLfunction remove_copy_if -syntax keyword cppSTLfunction remove_if -syntax keyword cppSTLfunction rename -syntax keyword cppSTLfunction rend -syntax keyword cppSTLfunction replace -syntax keyword cppSTLfunction replace_copy -syntax keyword cppSTLfunction replace_copy_if -syntax keyword cppSTLfunction replace_if -syntax keyword cppSTLfunction reserve -syntax keyword cppSTLfunction reset -syntax keyword cppSTLfunction resize -syntax keyword cppSTLfunction return_temporary_buffer -syntax keyword cppSTLfunction reverse -syntax keyword cppSTLfunction reverse_copy -syntax keyword cppSTLfunction rewind -syntax keyword cppSTLfunction rfind -syntax keyword cppSTLfunction rotate -syntax keyword cppSTLfunction rotate_copy -syntax keyword cppSTLfunction round_error -syntax keyword cppSTLfunction scanf -syntax keyword cppSTLfunction search -syntax keyword cppSTLfunction search_n -syntax keyword cppSTLfunction second -syntax keyword cppSTLfunction seekg -syntax keyword cppSTLfunction seekp -syntax keyword cppSTLfunction setbuf -syntax keyword cppSTLfunction set_difference -syntax keyword cppSTLfunction setf -syntax keyword cppSTLfunction set_intersection -syntax keyword cppSTLfunction setjmp -syntax keyword cppSTLfunction setlocale -syntax keyword cppSTLfunction set_new_handler -syntax keyword cppSTLfunction set_symmetric_difference -syntax keyword cppSTLfunction set_union -syntax keyword cppSTLfunction setvbuf -syntax keyword cppSTLfunction signal -syntax keyword cppSTLfunction signaling_NaN -syntax keyword cppSTLfunction sin -syntax keyword cppSTLfunction sinh -"syntax keyword cppSTLfunction size -syntax keyword cppSTLfunction sort -syntax keyword cppSTLfunction sort_heap -syntax keyword cppSTLfunction splice -syntax keyword cppSTLfunction sprintf -syntax keyword cppSTLfunction sqrt -syntax keyword cppSTLfunction srand -syntax keyword cppSTLfunction sscanf -syntax keyword cppSTLfunction stable_partition -syntax keyword cppSTLfunction stable_sort -syntax keyword cppSTLfunction str -syntax keyword cppSTLfunction strcat -syntax keyword cppSTLfunction strchr -syntax keyword cppSTLfunction strcmp -syntax keyword cppSTLfunction strcoll -syntax keyword cppSTLfunction strcpy -syntax keyword cppSTLfunction strcspn -syntax keyword cppSTLfunction strerror -syntax keyword cppSTLfunction strftime -syntax keyword cppSTLfunction string -syntax keyword cppSTLfunction strlen -syntax keyword cppSTLfunction strncat -syntax keyword cppSTLfunction strncmp -syntax keyword cppSTLfunction strncpy -syntax keyword cppSTLfunction strpbrk -syntax keyword cppSTLfunction strrchr -syntax keyword cppSTLfunction strspn -syntax keyword cppSTLfunction strstr -syntax keyword cppSTLfunction strtod -syntax keyword cppSTLfunction strtof -syntax keyword cppSTLfunction strtok -syntax keyword cppSTLfunction strtol -syntax keyword cppSTLfunction strtold -syntax keyword cppSTLfunction strtoll -syntax keyword cppSTLfunction strtoul -syntax keyword cppSTLfunction strxfrm -syntax keyword cppSTLfunction substr -syntax keyword cppSTLfunction swap -syntax keyword cppSTLfunction swap_ranges -syntax keyword cppSTLfunction swprintf -syntax keyword cppSTLfunction swscanf -syntax keyword cppSTLfunction sync_with_stdio -"syntax keyword cppSTLfunction system -syntax keyword cppSTLfunction tan -syntax keyword cppSTLfunction tanh -syntax keyword cppSTLfunction tellg -syntax keyword cppSTLfunction tellp -"syntax keyword cppSTLfunction test -"syntax keyword cppSTLfunction time -syntax keyword cppSTLfunction tmpfile -syntax keyword cppSTLfunction tmpnam -syntax keyword cppSTLfunction tolower -syntax keyword cppSTLfunction top -syntax keyword cppSTLfunction to_string -syntax keyword cppSTLfunction to_ulong -syntax keyword cppSTLfunction toupper -syntax keyword cppSTLfunction to_wstring -syntax keyword cppSTLfunction transform -syntax keyword cppSTLfunction unary_compose -syntax keyword cppSTLfunction unget -syntax keyword cppSTLfunction ungetc -syntax keyword cppSTLfunction uninitialized_copy -syntax keyword cppSTLfunction uninitialized_copy_n -syntax keyword cppSTLfunction uninitialized_fill -syntax keyword cppSTLfunction uninitialized_fill_n -syntax keyword cppSTLfunction unique -syntax keyword cppSTLfunction unique_copy -syntax keyword cppSTLfunction unsetf -syntax keyword cppSTLfunction upper_bound -syntax keyword cppSTLfunction va_arg -syntax keyword cppSTLfunction va_copy -syntax keyword cppSTLfunction va_end -syntax keyword cppSTLfunction value_comp -syntax keyword cppSTLfunction va_start -syntax keyword cppSTLfunction vfprintf -syntax keyword cppSTLfunction vfwprintf -syntax keyword cppSTLfunction vprintf -syntax keyword cppSTLfunction vsprintf -syntax keyword cppSTLfunction vswprintf -syntax keyword cppSTLfunction vwprintf -syntax keyword cppSTLfunction width -syntax keyword cppSTLfunction wprintf -syntax keyword cppSTLfunction write -syntax keyword cppSTLfunction wscanf -syntax keyword cppSTLios boolalpha -syntax keyword cppSTLios dec -syntax keyword cppSTLios defaultfloat -syntax keyword cppSTLios endl -syntax keyword cppSTLios ends -syntax keyword cppSTLios fixed -syntax keyword cppSTLios floatfield -syntax keyword cppSTLios flush -syntax keyword cppSTLios get_money -syntax keyword cppSTLios get_time -syntax keyword cppSTLios hex -syntax keyword cppSTLios hexfloat -syntax keyword cppSTLios internal -syntax keyword cppSTLios noboolalpha -syntax keyword cppSTLios noshowbase -syntax keyword cppSTLios noshowpoint -syntax keyword cppSTLios noshowpos -syntax keyword cppSTLios noskipws -syntax keyword cppSTLios nounitbuf -syntax keyword cppSTLios nouppercase -syntax keyword cppSTLios oct -syntax keyword cppSTLios put_money -syntax keyword cppSTLios put_time -syntax keyword cppSTLios resetiosflags -syntax keyword cppSTLios scientific -syntax keyword cppSTLios setbase -syntax keyword cppSTLios setfill -syntax keyword cppSTLios setiosflags -syntax keyword cppSTLios setprecision -syntax keyword cppSTLios setw -syntax keyword cppSTLios showbase -syntax keyword cppSTLios showpoint -syntax keyword cppSTLios showpos -syntax keyword cppSTLios skipws -syntax keyword cppSTLios unitbuf -syntax keyword cppSTLios uppercase -"syntax keyword cppSTLios ws -syntax keyword cppSTLiterator back_insert_iterator -syntax keyword cppSTLiterator const_iterator -syntax keyword cppSTLiterator const_reverse_iterator -syntax keyword cppSTLiterator front_insert_iterator -syntax keyword cppSTLiterator insert_iterator -syntax keyword cppSTLiterator istreambuf_iterator -syntax keyword cppSTLiterator istream_iterator -syntax keyword cppSTLiterator ostreambuf_iterator -syntax keyword cppSTLiterator ostream_iterator -syntax keyword cppSTLiterator iterator -syntax keyword cppSTLiterator ostream_iterator -syntax keyword cppSTLiterator output_iterator -syntax keyword cppSTLiterator raw_storage_iterator -syntax keyword cppSTLiterator move_iterator -syntax keyword cppSTLiterator reverse_iterator -syntax keyword cppSTLiterator_tag bidirectional_iterator_tag -syntax keyword cppSTLiterator_tag forward_iterator_tag -syntax keyword cppSTLiterator_tag input_iterator_tag -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 -syntax keyword cppSTLtype basic_fstream -syntax keyword cppSTLtype basic_ifstream -syntax keyword cppSTLtype basic_iostream -syntax keyword cppSTLtype basic_istream -syntax keyword cppSTLtype basic_istringstream -syntax keyword cppSTLtype basic_ofstream -syntax keyword cppSTLtype basic_ostream -syntax keyword cppSTLtype basic_ostringstream -syntax keyword cppSTLtype basic_streambuf -syntax keyword cppSTLtype basic_string -syntax keyword cppSTLtype basic_stringbuf -syntax keyword cppSTLtype basic_stringstream -syntax keyword cppSTLtype binary_compose -syntax keyword cppSTLtype binder1st -syntax keyword cppSTLtype binder2nd -syntax keyword cppSTLtype bitset -syntax keyword cppSTLtype char_traits -syntax keyword cppSTLtype char_type -syntax keyword cppSTLtype const_mem_fun1_t -syntax keyword cppSTLtype const_mem_fun_ref1_t -syntax keyword cppSTLtype const_mem_fun_ref_t -syntax keyword cppSTLtype const_mem_fun_t -syntax keyword cppSTLtype const_pointer -syntax keyword cppSTLtype const_reference -syntax keyword cppSTLtype container_type -syntax keyword cppSTLtype deque -syntax keyword cppSTLtype difference_type -syntax keyword cppSTLtype div_t -syntax keyword cppSTLtype double_t -syntax keyword cppSTLtype filebuf -syntax keyword cppSTLtype first_type -syntax keyword cppSTLtype float_denorm_style -syntax keyword cppSTLtype float_round_style -syntax keyword cppSTLtype float_t -syntax keyword cppSTLtype fstream -syntax keyword cppSTLtype gslice_array -syntax keyword cppSTLtype ifstream -syntax keyword cppSTLtype imaxdiv_t -syntax keyword cppSTLtype indirect_array -syntax keyword cppSTLtype int_type -syntax keyword cppSTLtype ios_base -syntax keyword cppSTLtype iostream -syntax keyword cppSTLtype istream -syntax keyword cppSTLtype istringstream -syntax keyword cppSTLtype istrstream -syntax keyword cppSTLtype iterator_traits -syntax keyword cppSTLtype key_compare -syntax keyword cppSTLtype key_type -syntax keyword cppSTLtype ldiv_t -syntax keyword cppSTLtype list -syntax keyword cppSTLtype lldiv_t -syntax keyword cppSTLtype map -syntax keyword cppSTLtype mapped_type -syntax keyword cppSTLtype mask_array -syntax keyword cppSTLtype mem_fun1_t -syntax keyword cppSTLtype mem_fun_ref1_t -syntax keyword cppSTLtype mem_fun_ref_t -syntax keyword cppSTLtype mem_fun_t -syntax keyword cppSTLtype multimap -syntax keyword cppSTLtype multiset -syntax keyword cppSTLtype nothrow_t -syntax keyword cppSTLtype off_type -syntax keyword cppSTLtype ofstream -syntax keyword cppSTLtype ostream -syntax keyword cppSTLtype ostringstream -syntax keyword cppSTLtype ostrstream -syntax keyword cppSTLtype pair -syntax keyword cppSTLtype pointer -syntax keyword cppSTLtype pointer_to_binary_function -syntax keyword cppSTLtype pointer_to_unary_function -syntax keyword cppSTLtype pos_type -syntax keyword cppSTLtype priority_queue -syntax keyword cppSTLtype queue -syntax keyword cppSTLtype reference -syntax keyword cppSTLtype second_type -syntax keyword cppSTLtype sequence_buffer -syntax keyword cppSTLtype set -syntax keyword cppSTLtype sig_atomic_t -syntax keyword cppSTLtype size_type -syntax keyword cppSTLtype slice_array -syntax keyword cppSTLtype stack -syntax keyword cppSTLtype stream -syntax keyword cppSTLtype streambuf -syntax keyword cppSTLtype streamsize -syntax keyword cppSTLtype string -syntax keyword cppSTLtype stringbuf -syntax keyword cppSTLtype stringstream -syntax keyword cppSTLtype strstream -syntax keyword cppSTLtype strstreambuf -syntax keyword cppSTLtype temporary_buffer -syntax keyword cppSTLtype test_type -syntax keyword cppSTLtype time_t -syntax keyword cppSTLtype tm -syntax keyword cppSTLtype traits_type -syntax keyword cppSTLtype type_info -syntax keyword cppSTLtype u16string -syntax keyword cppSTLtype u32string -syntax keyword cppSTLtype unary_compose -syntax keyword cppSTLtype unary_negate -syntax keyword cppSTLtype valarray -syntax keyword cppSTLtype value_compare -syntax keyword cppSTLtype value_type -syntax keyword cppSTLtype vector -syntax keyword cppSTLtype wfilebuf -syntax keyword cppSTLtype wfstream -syntax keyword cppSTLtype wifstream -syntax keyword cppSTLtype wiostream -syntax keyword cppSTLtype wistream -syntax keyword cppSTLtype wistringstream -syntax keyword cppSTLtype wofstream -syntax keyword cppSTLtype wostream -syntax keyword cppSTLtype wostringstream -syntax keyword cppSTLtype wstreambuf -syntax keyword cppSTLtype wstring -syntax keyword cppSTLtype wstringbuf -syntax keyword cppSTLtype wstringstream - -syntax keyword cppSTLfunction mblen -syntax keyword cppSTLfunction mbtowc -syntax keyword cppSTLfunction wctomb -syntax keyword cppSTLfunction mbstowcs -syntax keyword cppSTLfunction wcstombs -syntax keyword cppSTLfunction mbsinit -syntax keyword cppSTLfunction btowc -syntax keyword cppSTLfunction wctob -syntax keyword cppSTLfunction mbrlen -syntax keyword cppSTLfunction mbrtowc -syntax keyword cppSTLfunction wcrtomb -syntax keyword cppSTLfunction mbsrtowcs -syntax keyword cppSTLfunction wcsrtombs - -syntax keyword cppSTLtype mbstate_t - -syntax keyword cppSTLconstant MB_LEN_MAX -syntax keyword cppSTLconstant MB_CUR_MAX -syntax keyword cppSTLconstant __STDC_UTF_16__ -syntax keyword cppSTLconstant __STDC_UTF_32__ - -syntax keyword cppSTLfunction iswalnum -syntax keyword cppSTLfunction iswalpha -syntax keyword cppSTLfunction iswlower -syntax keyword cppSTLfunction iswupper -syntax keyword cppSTLfunction iswdigit -syntax keyword cppSTLfunction iswxdigit -syntax keyword cppSTLfunction iswcntrl -syntax keyword cppSTLfunction iswgraph -syntax keyword cppSTLfunction iswspace -syntax keyword cppSTLfunction iswprint -syntax keyword cppSTLfunction iswpunct -syntax keyword cppSTLfunction iswctype -syntax keyword cppSTLfunction wctype - -syntax keyword cppSTLfunction towlower -syntax keyword cppSTLfunction towupper -syntax keyword cppSTLfunction towctrans -syntax keyword cppSTLfunction wctrans - -syntax keyword cppSTLfunction wcstol -syntax keyword cppSTLfunction wcstoll -syntax keyword cppSTLfunction wcstoul -syntax keyword cppSTLfunction wcstoull -syntax keyword cppSTLfunction wcstof -syntax keyword cppSTLfunction wcstod -syntax keyword cppSTLfunction wcstold - -syntax keyword cppSTLfunction wcscpy -syntax keyword cppSTLfunction wcsncpy -syntax keyword cppSTLfunction wcscat -syntax keyword cppSTLfunction wcsncat -syntax keyword cppSTLfunction wcsxfrm -syntax keyword cppSTLfunction wcslen -syntax keyword cppSTLfunction wcscmp -syntax keyword cppSTLfunction wcsncmp -syntax keyword cppSTLfunction wcscoll -syntax keyword cppSTLfunction wcschr -syntax keyword cppSTLfunction wcsrchr -syntax keyword cppSTLfunction wcsspn -syntax keyword cppSTLfunction wcscspn -syntax keyword cppSTLfunction wcspbrk -syntax keyword cppSTLfunction wcsstr -syntax keyword cppSTLfunction wcstok -syntax keyword cppSTLfunction wmemcpy -syntax keyword cppSTLfunction wmemmove -syntax keyword cppSTLfunction wmemcmp -syntax keyword cppSTLfunction wmemchr -syntax keyword cppSTLfunction wmemset - -syntax keyword cppSTLtype wctrans_t -syntax keyword cppSTLtype wctype_t -syntax keyword cppSTLtype wint_t - -syntax keyword cppSTLconstant WEOF -syntax keyword cppSTLconstant WCHAR_MIN -syntax keyword cppSTLconstant WCHAR_MAX - -" locale -syntax keyword cppSTLtype locale -syntax keyword cppSTLtype ctype_base -syntax keyword cppSTLtype codecvt_base -syntax keyword cppSTLtype messages_base -syntax keyword cppSTLtype time_base -syntax keyword cppSTLtype money_base -syntax keyword cppSTLtype ctype -syntax keyword cppSTLtype codecvt -syntax keyword cppSTLtype collate -syntax keyword cppSTLtype messages -syntax keyword cppSTLtype time_get -syntax keyword cppSTLtype time_put -syntax keyword cppSTLtype num_get -syntax keyword cppSTLtype num_put -syntax keyword cppSTLtype numpunct -syntax keyword cppSTLtype money_get -syntax keyword cppSTLtype money_put -syntax keyword cppSTLtype moneypunct -syntax keyword cppSTLtype ctype_byname -syntax keyword cppSTLtype codecvt_byname -syntax keyword cppSTLtype messages_byname -syntax keyword cppSTLtype collate_byname -syntax keyword cppSTLtype time_get_byname -syntax keyword cppSTLtype time_put_byname -syntax keyword cppSTLtype numpunct_byname -syntax keyword cppSTLtype moneypunct_byname -syntax keyword cppSTLfunction use_facet -syntax keyword cppSTLfunction has_facet -syntax keyword cppSTLfunction isspace isblank iscntrl isupper islower isalpha -syntax keyword cppSTLfunction isdigit ispunct isxdigit isalnum isprint isgraph - -if !exists("cpp_no_cpp11") -    syntax keyword cppSTLconstant nullptr - -    " containers (array, vector, list, *map, *set, ...) -    syntax keyword cppSTLtype array -    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 - -    " 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_backward -    syntax keyword cppSTLfunction shuffle -    syntax keyword cppSTLfunction is_partitioned -    syntax keyword cppSTLfunction partition_copy -    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 - -    " 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 cppSTLtype memory_order_relaxed -    syntax keyword cppSTLtype memory_order_consume -    syntax keyword cppSTLtype memory_order_acquire -    syntax keyword cppSTLtype memory_order_release -    syntax keyword cppSTLtype memory_order_acq_rel -    syntax keyword cppSTLtype memory_order_seq_cst -    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 -    syntax keyword cppSTLfunction remquo -    syntax keyword cppSTLfunction fma -    syntax keyword cppSTLfunction fmax -    syntax keyword cppSTLfunction fmin -    syntax keyword cppSTLfunction fdim -    syntax keyword cppSTLfunction nan -    syntax keyword cppSTLfunction nanf -    syntax keyword cppSTLfunction nanl -    syntax keyword cppSTLfunction exp2 -    syntax keyword cppSTLfunction expm1 -    syntax keyword cppSTLfunction log1p -    syntax keyword cppSTLfunction log2 -    syntax keyword cppSTLfunction cbrt -    syntax keyword cppSTLfunction hypot -    syntax keyword cppSTLfunction asinh -    syntax keyword cppSTLfunction acosh -    syntax keyword cppSTLfunction atanh -    syntax keyword cppSTLfunction erf -    syntax keyword cppSTLfunction erfc -    syntax keyword cppSTLfunction lgamma -    syntax keyword cppSTLfunction tgamma -    syntax keyword cppSTLfunction trunc -    syntax keyword cppSTLfunction round -    syntax keyword cppSTLfunction lround -    syntax keyword cppSTLfunction llround -    syntax keyword cppSTLfunction nearbyint -    syntax keyword cppSTLfunction rint -    syntax keyword cppSTLfunction lrint -    syntax keyword cppSTLfunction llrint -    syntax keyword cppSTLfunction scalbn -    syntax keyword cppSTLfunction scalbln -    syntax keyword cppSTLfunction ilogb -    syntax keyword cppSTLfunction logb -    syntax keyword cppSTLfunction nextafter -    syntax keyword cppSTLfunction nexttoward -    syntax keyword cppSTLfunction copysign -    syntax keyword cppSTLfunction fpclassify -    syntax keyword cppSTLfunction isfinite -    syntax keyword cppSTLfunction isinf -    syntax keyword cppSTLfunction isnan -    syntax keyword cppSTLfunction isnormal -    syntax keyword cppSTLfunction signbit - -    " random -    syntax keyword cppSTLtype linear_congruential_engine -    syntax keyword cppSTLtype mersenne_twister_engine -    syntax keyword cppSTLtype subtract_with_carry_engine -    syntax keyword cppSTLtype discard_block_engine -    syntax keyword cppSTLtype independent_bits_engine -    syntax keyword cppSTLtype shuffle_order_engine -    syntax keyword cppSTLtype random_device -    syntax keyword cppSTLtype default_random_engine -    syntax keyword cppSTLtype minstd_rand0 -    syntax keyword cppSTLtype minstd_rand -    syntax keyword cppSTLtype mt19937 -    syntax keyword cppSTLtype mt19937_64 -    syntax keyword cppSTLtype ranlux24_base -    syntax keyword cppSTLtype ranlux48_base -    syntax keyword cppSTLtype ranlux24 -    syntax keyword cppSTLtype ranlux48 -    syntax keyword cppSTLtype knuth_b -    syntax keyword cppSTLtype uniform_int_distribution -    syntax keyword cppSTLtype uniform_real_distribution -    syntax keyword cppSTLtype bernoulli_distribution -    syntax keyword cppSTLtype binomial_distribution -    syntax keyword cppSTLtype negative_binomial_distribution -    syntax keyword cppSTLtype geometric_distribution -    syntax keyword cppSTLtype poisson_distribution -    syntax keyword cppSTLtype exponential_distribution -    syntax keyword cppSTLtype gamma_distribution -    syntax keyword cppSTLtype weibull_distribution -    syntax keyword cppSTLtype extreme_value_distribution -    syntax keyword cppSTLtype normal_distribution -    syntax keyword cppSTLtype lognormal_distribution -    syntax keyword cppSTLtype chi_squared_distribution -    syntax keyword cppSTLtype cauchy_distribution -    syntax keyword cppSTLtype fisher_f_distribution -    syntax keyword cppSTLtype student_t_distribution -    syntax keyword cppSTLtype discrete_distribution -    syntax keyword cppSTLtype piecewise_constant_distribution -    syntax keyword cppSTLtype piecewise_linear_distribution -    syntax keyword cppSTLtype seed_seq -    syntax keyword cppSTLfunction generate_canonical - -    " ratio -    syntax keyword cppSTLtype ratio -    syntax keyword cppSTLtype yocto -    syntax keyword cppSTLtype zepto -    syntax keyword cppSTLtype atto -    syntax keyword cppSTLtype femto -    syntax keyword cppSTLtype pico -    syntax keyword cppSTLtype nano -    syntax keyword cppSTLtype micro -    syntax keyword cppSTLtype milli -    syntax keyword cppSTLtype centi -    syntax keyword cppSTLtype deci -    syntax keyword cppSTLtype deca -    syntax keyword cppSTLtype hecto -    syntax keyword cppSTLtype kilo -    syntax keyword cppSTLtype mega -    syntax keyword cppSTLtype giga -    syntax keyword cppSTLtype tera -    syntax keyword cppSTLtype peta -    syntax keyword cppSTLtype exa -    syntax keyword cppSTLtype zetta -    syntax keyword cppSTLtype yotta -    syntax keyword cppSTLtype ratio_add -    syntax keyword cppSTLtype ratio_subtract -    syntax keyword cppSTLtype ratio_multiply -    syntax keyword cppSTLtype ratio_divide -    syntax keyword cppSTLtype ratio_equal -    syntax keyword cppSTLtype ratio_not_equal -    syntax keyword cppSTLtype ratio_less -    syntax keyword cppSTLtype ratio_less_equal -    syntax keyword cppSTLtype ratio_greater -    syntax keyword cppSTLtype ratio_greater_equal - -    " 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 - -    " 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 - -    " 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 - -    " 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 - -    " 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") -    " chrono -    syntax keyword cppSTLnamespace literals -    syntax keyword cppSTLnamespace chrono_literals - -    " iterator -    syntax keyword cppSTLfunction make_reverse_iterator - -    " 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_cpp17") -    syntax keyword cppSTLnamespace pmr - -    " 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 - -    " mutex -    syntax keyword cppSTLtype scoped_lock - -    " 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 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 - -    " shared_mutex -    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 cppSTLbool has_unique_object_representations_v -    syntax keyword cppSTLbool is_swappable_v -    syntax keyword cppSTLbool is_swappable_with_v -    syntax keyword cppSTLbool is_nothrow_swappable_v -    syntax keyword cppSTLbool is_nothrow_swappable_with_v -    syntax keyword cppSTLbool is_invocable_v -    syntax keyword cppSTLbool is_invocable_r_v -    syntax keyword cppSTLbool is_nothrow_invocable_v -    syntax keyword cppSTLbool is_nothrow_invocable_r_v -    syntax keyword cppSTLbool is_aggregate_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 -    syntax keyword cppSTLtype void_t -    syntax keyword cppSTLtype has_unique_object_representations -    syntax keyword cppSTLtype is_swappable -    syntax keyword cppSTLtype is_swappable_with -    syntax keyword cppSTLtype is_nothrow_swappable -    syntax keyword cppSTLtype is_nothrow_swappable_with -    syntax keyword cppSTLtype is_invocable -    syntax keyword cppSTLtype is_invocable_r -    syntax keyword cppSTLtype is_nothrow_invocable -    syntax keyword cppSTLtype is_nothrow_invocable_r -    syntax keyword cppSTLtype invoke_result -    syntax keyword cppSTLtype invoke_result_t -    syntax keyword cppSTLtype is_aggregate - -    " 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("cpp_no_cpp20") -    syntax keyword cppType char8_t -    syntax keyword cppStatement co_yield co_return co_await -    syntax keyword cppStorageClass consteval -    syntax keyword cppSTLnamespace ranges - -    " algorithm -    syntax keyword cppSTLfunction shift_left -    syntax keyword cppSTLfunction shift_right -    syntax keyword cppSTLfunction lexicographical_compare_three_way - -    " bit -    syntax keyword cppSTLcast bit_cast -    syntax keyword cppSTLfunction ispow2 -    syntax keyword cppSTLfunction ceil2 -    syntax keyword cppSTLfunction floor2 -    syntax keyword cppSTLfunction log2p1 -    syntax keyword cppSTLfunction rotl -    syntax keyword cppSTLfunction rotr -    syntax keyword cppSTLfunction countl_zero -    syntax keyword cppSTLfunction countl_one -    syntax keyword cppSTLfunction countr_zero -    syntax keyword cppSTLfunction countr_one -    syntax keyword cppSTLfunction popcount -    syntax keyword cppSTLtype endian - -    " compare -    syntax keyword cppSTLtype weak_equality -    syntax keyword cppSTLtype strong_equality -    syntax keyword cppSTLtype partial_ordering -    syntax keyword cppSTLtype weak_ordering -    syntax keyword cppSTLtype strong_ordering -    syntax keyword cppSTLtype common_comparison_category -    syntax keyword cppSTLtype compare_three_way_result -    syntax keyword cppSTLtype compare_three_way -    syntax keyword cppSTLtype strong_order -    syntax keyword cppSTLtype weak_order -    syntax keyword cppSTLtype parital_order -    syntax keyword cppSTLtype compare_strong_order_fallback -    syntax keyword cppSTLtype compare_weak_order_fallback -    syntax keyword cppSTLtype compare_parital_order_fallback -    syntax keyword cppSTLfunction is_eq -    syntax keyword cppSTLfunction is_neq -    syntax keyword cppSTLfunction is_lt -    syntax keyword cppSTLfunction is_lteq -    syntax keyword cppSTLfunction is_gt -    syntax keyword cppSTLfunction is_gteq - -    " format -    syntax keyword cppSTLtype formatter -    syntax keyword cppSTLtype basic_format_parse_context -    syntax keyword cppSTLtype format_parse_context -    syntax keyword cppSTLtype wformat_parse_context -    syntax keyword cppSTLtype basic_format_context -    syntax keyword cppSTLtype format_context -    syntax keyword cppSTLtype wformat_context -    syntax keyword cppSTLtype basic_format_arg -    syntax keyword cppSTLtype basic_format_args -    syntax keyword cppSTLtype format_args -    syntax keyword cppSTLtype wformat_args -    syntax keyword cppSTLtype format_args_t -    syntax keyword cppSTLtype format_error -    syntax keyword cppSTLfuntion format -    syntax keyword cppSTLfuntion format_to -    syntax keyword cppSTLfuntion format_to_n -    syntax keyword cppSTLfuntion formatted_size -    syntax keyword cppSTLfuntion vformat -    syntax keyword cppSTLfuntion vformat_to -    syntax keyword cppSTLfuntion visit_format_arg -    syntax keyword cppSTLfuntion make_format_args -    syntax keyword cppSTLfuntion make_wformat_args - -    " iterator -    syntax keyword cppSTLtype default_sentinel_t unreachable_sentinel_t -    syntax keyword cppSTLiterator common_iterator -    syntax keyword cppSTLiterator counted_iterator -    syntax keyword cppSTLiterator_tag contiguous_iterator_tag - -    " memory -    syntax keyword cppSTLfunction to_address -    syntax keyword cppSTLfunction assume_aligned -    syntax keyword cppSTLfunction make_unique_default_init -    syntax keyword cppSTLfunction allocate_shared_default_init - -    " source_location -    syntax keyword cppSTLtype source_location - -    " span -    syntax keyword cppSTLtype span -    syntax keyword cppSTLfunction as_bytes -    syntax keyword cppSTLfunction as_writable_bytes -    syntax keyword cppSTLconstant dynamic_extent - -    " syncstream -    syntax keyword cppSTLtype basic_syncbuf -    syntax keyword cppSTLtype basic_osyncstream -    syntax keyword cppSTLtype syncbuf -    syntax keyword cppSTLtype wsyncbuf -    syntax keyword cppSTLtype osyncstream -    syntax keyword cppSTLtype wosyncstream - -    " type_traits -    syntax keyword cppSTLtype remove_cvref remove_cvref_t -    syntax keyword cppSTLtype common_reference common_reference_t -    syntax keyword cppSTLfunction is_constant_evaluated -    syntax keyword cppSTLfunction is_pointer_interconvertible -    syntax keyword cppSTLfunction is_corresponding_member -    syntax keyword cppSTLtype is_nothrow_convertible -    syntax keyword cppSTLbool is_nothrow_convertible_v -    syntax keyword cppSTLtype is_layout_compatible -    syntax keyword cppSTLbool is_layout_compatible_v -    syntax keyword cppSTLtype is_bounded_array -    syntax keyword cppSTLbool is_bounded_array_v -    syntax keyword cppSTLtype is_unbounded_array -    syntax keyword cppSTLbool is_unbounded_array_v -    syntax keyword cppSTLtype is_pointer_interconvertible_base_of -    syntax keyword cppSTLbool is_pointer_interconvertible_base_of_v -    syntax keyword cppSTLtype has_strong_structural_equality -    syntax keyword cppSTLbool has_strong_structural_equality_v - -    " version -    " TODO -endif - - -if exists('g:cpp_concepts_highlight') -    syntax keyword cppStatement concept -    syntax keyword cppStorageClass requires - -    if g:cpp_concepts_highlight == 1 -        syntax keyword cppSTLconcept DefaultConstructible -        syntax keyword cppSTLconcept MoveConstructible -        syntax keyword cppSTLconcept CopyConstructible -        syntax keyword cppSTLconcept MoveAssignable -        syntax keyword cppSTLconcept CopyAssignable -        syntax keyword cppSTLconcept Destructible -        syntax keyword cppSTLconcept TriviallyCopyable -        syntax keyword cppSTLconcept TrivialType -        syntax keyword cppSTLconcept StandardLayoutType -        syntax keyword cppSTLconcept PODType -        syntax keyword cppSTLconcept EqualityComparable -        syntax keyword cppSTLconcept LessThanComparable -        syntax keyword cppSTLconcept Swappable -        syntax keyword cppSTLconcept ValueSwappable -        syntax keyword cppSTLconcept NullablePointer -        syntax keyword cppSTLconcept Hash -        syntax keyword cppSTLconcept Allocator -        syntax keyword cppSTLconcept FunctionObject -        syntax keyword cppSTLconcept Callable -        syntax keyword cppSTLconcept Predicate -        syntax keyword cppSTLconcept BinaryPredicate -        syntax keyword cppSTLconcept Compare -        syntax keyword cppSTLconcept Container -        syntax keyword cppSTLconcept ReversibleContainer -        syntax keyword cppSTLconcept AllocatorAwareContainer -        syntax keyword cppSTLconcept SequenceContainer -        syntax keyword cppSTLconcept ContiguousContainer -        syntax keyword cppSTLconcept AssociativeContainer -        syntax keyword cppSTLconcept UnorderedAssociativeContainer -        syntax keyword cppSTLconcept DefaultInsertable -        syntax keyword cppSTLconcept CopyInsertable -        syntax keyword cppSTLconcept CopyInsertable -        syntax keyword cppSTLconcept MoveInsertable -        syntax keyword cppSTLconcept EmplaceConstructible -        syntax keyword cppSTLconcept Erasable -        syntax keyword cppSTLconcept Iterator -        syntax keyword cppSTLconcept InputIterator -        syntax keyword cppSTLconcept OutputIterator -        syntax keyword cppSTLconcept ForwardIterator -        syntax keyword cppSTLconcept BidirectionalIterator -        syntax keyword cppSTLconcept RandomAccessIterator -        syntax keyword cppSTLconcept ContiguousIterator -        syntax keyword cppSTLconcept UnformattedInputFunction -        syntax keyword cppSTLconcept FormattedInputFunction -        syntax keyword cppSTLconcept UnformattedOutputFunction -        syntax keyword cppSTLconcept FormattedOutputFunction -        syntax keyword cppSTLconcept SeedSequence -        syntax keyword cppSTLconcept UniformRandomBitGenerator -        syntax keyword cppSTLconcept RandomNumberEngine -        syntax keyword cppSTLconcept RandomNumberEngineAdaptor -        syntax keyword cppSTLconcept RandomNumberDistribution -        syntax keyword cppSTLconcept BasicLockable -        syntax keyword cppSTLconcept Lockable -        syntax keyword cppSTLconcept TimedLockable -        syntax keyword cppSTLconcept Mutex -        syntax keyword cppSTLconcept TimedMutex -        syntax keyword cppSTLconcept SharedMutex -        syntax keyword cppSTLconcept SharedTimedMutex -        syntax keyword cppSTLconcept UnaryTypeTrait -        syntax keyword cppSTLconcept BinaryTypeTrait -        syntax keyword cppSTLconcept TransformationTrait -        syntax keyword cppSTLconcept Clock -        syntax keyword cppSTLconcept TrivialClock -        syntax keyword cppSTLconcept CharTraits -        syntax keyword cppSTLconcept pos_type -        syntax keyword cppSTLconcept off_type -        syntax keyword cppSTLconcept BitmaskType -        syntax keyword cppSTLconcept NumericType -        syntax keyword cppSTLconcept RegexTraits -        syntax keyword cppSTLconcept LiteralType -  elseif g:cpp_concepts_highlight == 2 -        syntax keyword cppSTLconcept same_as -        syntax keyword cppSTLconcept derived_from -        syntax keyword cppSTLconcept convertible_to -        syntax keyword cppSTLconcept common_reference_with -        syntax keyword cppSTLconcept common_with -        syntax keyword cppSTLconcept integral -        syntax keyword cppSTLconcept signed_integral -        syntax keyword cppSTLconcept unsigned_integral -        syntax keyword cppSTLconcept assignable_from -        syntax keyword cppSTLconcept swappable -        syntax keyword cppSTLconcept swappable_with -        syntax keyword cppSTLconcept destructible -        syntax keyword cppSTLconcept constructible_from -        syntax keyword cppSTLconcept default_constructible -        syntax keyword cppSTLconcept move_constructible -        syntax keyword cppSTLconcept copy_constructible -        syntax keyword cppSTLconcept boolean -        syntax keyword cppSTLconcept equality_comparable -        syntax keyword cppSTLconcept equality_comparable_with -        syntax keyword cppSTLconcept totally_ordered -        syntax keyword cppSTLconcept totally_ordered_with -        syntax keyword cppSTLconcept movable -        syntax keyword cppSTLconcept copyable -        syntax keyword cppSTLconcept semiregular -        syntax keyword cppSTLconcept regular -        syntax keyword cppSTLconcept invocable -        syntax keyword cppSTLconcept regular_invocable -        syntax keyword cppSTLconcept predicate -        syntax keyword cppSTLconcept relation -        syntax keyword cppSTLconcept strict_weak_order -        syntax keyword cppSTLconcept readable -        syntax keyword cppSTLconcept writable -        syntax keyword cppSTLconcept weakly_incrementable -        syntax keyword cppSTLconcept incrementable -        syntax keyword cppSTLconcept input_or_output_iterator -        syntax keyword cppSTLconcept sentinal_for -        syntax keyword cppSTLconcept sized_sentinal_for -        syntax keyword cppSTLconcept input_iterator -        syntax keyword cppSTLconcept output_iterator -        syntax keyword cppSTLconcept forward_iterator -        syntax keyword cppSTLconcept bidirectional_iterator -        syntax keyword cppSTLconcept random_access_iterator -        syntax keyword cppSTLconcept input_iterator -        syntax keyword cppSTLconcept output_iterator -        syntax keyword cppSTLconcept bidirectional_iterator -        syntax keyword cppSTLconcept random_access_iterator -        syntax keyword cppSTLconcept contiguous_iterator -        syntax keyword cppSTLconcept indirectly_unary_invocable -        syntax keyword cppSTLconcept indirectly_regular_unary_invocable -        syntax keyword cppSTLconcept indirect_unary_predicate -        syntax keyword cppSTLconcept indirect_relation -        syntax keyword cppSTLconcept indirect_strict_weak_order -        syntax keyword cppSTLconcept indirectly_movable -        syntax keyword cppSTLconcept indirectly_movable_storable -        syntax keyword cppSTLconcept indirectly_copyable -        syntax keyword cppSTLconcept indirectly_copyable_storable -        syntax keyword cppSTLconcept indirectly_swappable -        syntax keyword cppSTLconcept indirectly_comparable -        syntax keyword cppSTLconcept permutable -        syntax keyword cppSTLconcept mergeable -        syntax keyword cppSTLconcept sortable -        syntax keyword cppSTLconcept range -        syntax keyword cppSTLconcept sized_range -        syntax keyword cppSTLconcept output_range -        syntax keyword cppSTLconcept input_range -        syntax keyword cppSTLconcept bidirectional_range -        syntax keyword cppSTLconcept random_access_range -        syntax keyword cppSTLconcept contiguous_range -        syntax keyword cppSTLconcept common_range -        syntax keyword cppSTLconcept viewable_range -        syntax keyword cppSTLconcept uniform_random_bit_generator -  endif -endif " C++ concepts - - -if !exists("cpp_no_boost") -    syntax keyword cppSTLnamespace boost -    syntax keyword cppSTLcast lexical_cast -endif " boost - - -" Default highlighting -if version >= 508 || !exists("did_cpp_syntax_inits") -  if version < 508 -    let did_cpp_syntax_inits = 1 -    command -nargs=+ HiLink hi link <args> -  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 -  HiLink cppSTLnamespace    Constant -  HiLink cppSTLtype         Typedef -  HiLink cppSTLexception    Exception -  HiLink cppSTLiterator     Typedef -  HiLink cppSTLiterator_tag Typedef -  HiLink cppSTLenum         Typedef -  HiLink cppSTLconcept      Typedef -  HiLink cppSTLios          Function -  HiLink cppSTLcast         Statement " be consistent with official syntax -  HiLink cppRawString       String -  HiLink cppRawDelimiter    Delimiter -  delcommand HiLink -endif - -endif | 
