-snippet map "std::map (map)"
-std::map<${1:key}, ${2:value}> map$0;
+snippet fore "range-based for loop"
+for (auto ${1:n} : ${2:v})
+{
+ ${VISUAL}${0}
+}
+endsnippet
+
+snippet cplat "Cross platform pre processor split" b
+#if defined(__GNUC__) && defined(__unix__)
+${1}
+#elif defined(__APPLE__)
+${2}
+#elif defined(_WIN32)
+${3}
+#endif
+endsnippet
+
+snippet pprint "Pretty print expression" b
+#define PPRINT(x) std::cout << #x " = " << (x) << '\n';
+PPRINT(${VISUAL}${0})
+endsnippet
+
+#
+# Qt
+#
+global !p
+def align(base, a, pad=' '):
+ amount = abs(len(base) - len(a))
+ return amount * pad if len(base) < len(a) else ''
+endglobal
+
+snippet connect "Qt connect()" b
+connect(${1:this}, `!p snip.rv = align(t[1],t[3])`&${2:class::function},
+ ${3:this}, `!p snip.rv = align(t[3],t[1])`&${4:class::function});
+${0}
+endsnippet
+
+snippet connectl "Qt connect() lambda" b
+connect(${1:this}, &${2:class::function},
+ [=](${3:void}) { ${4} });
+${0}