--- /dev/null
+snippet once "Include header once only guard"
+#ifndef ${1:`!p snip.rv = re.sub(r'[^A-Za-z0-9]+','_', snip.fn).upper()`}
+#define $1
+
+${VISUAL}${0}
+
+#endif // $1
+endsnippet
+
+snippet for "for loop (for)"
+for (${2:i} = 0; $2 < ${1:count}; ${3:++$2}) {
+ ${VISUAL}${0}
+}
+endsnippet
+
+snippet if "if .. (if)"
+if (${1:/* condition */}) {
+ ${VISUAL}${0}
+}
+endsnippet
+
+snippet ife "if .. else (ife)"
+if (${1:/* condition */}) {
+ ${2}
+} else {
+ ${3:/* else */}
+}
+endsnippet
--- /dev/null
+# replace snippets of parent ft
+priority 1
+
+snippet cl "class .. (class)"
+class ${1:`!p snip.rv = snip.basename or "name"`}
+{
+public:
+ ${1/(\w+).*/$1/}(${2:arguments});
+ virtual ~${1/(\w+).*/$1/}();
+
+private:
+ ${0:/* data */}
+}; // class${1/.+/ $0/m}
+endsnippet
+
+snippet ns "namespace .. (namespace)"
+namespace${1/.+/ /m}${1:`!p snip.rv = snip.basename or "name"`}
+{
+${VISUAL}${0}
+}${1/.+/ \/\/ namespace $0/m}
+endsnippet
+
+snippet for "for loop (for)"
+for (${4:int} ${2:i} = 0; $2 < ${1:count}; ${3:++$2}) {
+ ${VISUAL}${0}
+}
+endsnippet