aboutsummaryrefslogtreecommitdiffstats
path: root/cmake/cmake-cxx11/Modules/CheckCXX11Features/cxx11-test-variadic_templates.cpp
diff options
context:
space:
mode:
authorVincent Richard <[email protected]>2013-11-21 21:16:57 +0000
committerVincent Richard <[email protected]>2013-11-21 21:16:57 +0000
commitf9913fa28a27f23fde2d4956c62cbb2fb2bc2ee8 (patch)
tree2bdc90e361a8f6e0a81164cf67afec9f78f9b959 /cmake/cmake-cxx11/Modules/CheckCXX11Features/cxx11-test-variadic_templates.cpp
parentPer-protocol include files. (diff)
downloadvmime-f9913fa28a27f23fde2d4956c62cbb2fb2bc2ee8.tar.gz
vmime-f9913fa28a27f23fde2d4956c62cbb2fb2bc2ee8.zip
Boost/C++11 shared pointers.
Diffstat (limited to 'cmake/cmake-cxx11/Modules/CheckCXX11Features/cxx11-test-variadic_templates.cpp')
-rw-r--r--cmake/cmake-cxx11/Modules/CheckCXX11Features/cxx11-test-variadic_templates.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/cmake/cmake-cxx11/Modules/CheckCXX11Features/cxx11-test-variadic_templates.cpp b/cmake/cmake-cxx11/Modules/CheckCXX11Features/cxx11-test-variadic_templates.cpp
new file mode 100644
index 00000000..4518e886
--- /dev/null
+++ b/cmake/cmake-cxx11/Modules/CheckCXX11Features/cxx11-test-variadic_templates.cpp
@@ -0,0 +1,23 @@
+int Accumulate()
+{
+ return 0;
+}
+
+template<typename T, typename... Ts>
+int Accumulate(T v, Ts... vs)
+{
+ return v + Accumulate(vs...);
+}
+
+template<int... Is>
+int CountElements()
+{
+ return sizeof...(Is);
+}
+
+int main()
+{
+ int acc = Accumulate(1, 2, 3, 4, -5);
+ int count = CountElements<1,2,3,4,5>();
+ return ((acc == 5) && (count == 5)) ? 0 : 1;
+}