extends c priority 1 snippet enum "Enumeration" enum ${1:name} { $0 }; endsnippet snippet for "For loop, index or range" for (${1:auto} ${2:index} ${4/(.*;.*)|(\w*)/(?1:=:\:)/} ${4:${3:0}; $2 < ${5:count}; $2${6:++}}) { $0 } endsnippet snippet struct "Structure" struct ${1:name} { $0 }; endsnippet snippet class "Class" class ${1:name} { public: ${1/(\w+)\s.*/$1/}(); ~${1/(\w+)\s.*/$1/}(); $0 }; endsnippet snippet template "Template" template <${1:class} ${2:T}$3>$0 endsnippet snippet namespace "Named or anonymous namespace" namespace $1${1/(\w+)/ /}{ $0 } // namespace${1/(\w*)/(?1: $1:)/} endsnippet snippet const_cast "Const cast" i const_cast<$1>($2)$0 endsnippet snippet dynamic_cast "Dynamic cast" i dynamic_cast<$1>($2)$0 endsnippet snippet static_cast "Static cast" i static_cast<$1>($2)$0 endsnippet snippet reinterpret_cast "Reinterpret case" i reinterpret_cast<$1>($2)$0 endsnippet snippet [] "Labmda function" i [$1]($2)${3/(.*)/(?1: -> ::)/}$3 {$0} endsnippet snippet static_assert "Static assert" static_assert($1${2:, "$3"}); endsnippet snippet decltype "decltype" i decltype($1)$0 endsnippet snippet declval "declval" i declval<$1>()$0 endsnippet snippet noisy "A noise class" class noisy_t { public: noisy_t() { puts(__PRETTY_FUNCTION__); } noisy_t(const noisy_t &) { puts(__PRETTY_FUNCTION__); } noisy_t(noisy_t &&) { puts(__PRETTY_FUNCTION__); } noisy_t &operator=(const noisy_t &) { puts(__PRETTY_FUNCTION__); return *this; } noisy_t &operator=(noisy_t &&) { puts(__PRETTY_FUNCTION__); return *this; } ~noisy_t() { puts(__PRETTY_FUNCTION__); } }; endsnippet snippet std::enable_if "Enable if" typename std::enable_if<${1:condition}${2:, ${3:type}}>::type endsnippet snippet std::fprintf "std::fprintf ..." std::fprintf(${1:stderr}, "${2:%s}\n"${2/([^%]|%%)*(%.)?.*/(?2:, :\);)/}$3${2/([^%]|%%)*(%.)?.*/(?2:\);)/} endsnippet snippet std::printf "std::printf ..." std::printf("${1:%s}\n"${1/([^%]|%%)*(%.)?.*/(?2:, :\);)/}$2${1/([^%]|%%)*(%.)?.*/(?2:\);)/} endsnippet snippet printf_sv "printf for std::string_view" printf("$1: %.*s\n", static_cast(${1:view}.size()), $1.data());$0 endsnippet snippet externc "extern C block" #ifdef __cplusplus extern "C" { #endif $0 #ifdef __cplusplus } #endif endsnippet