diff options
Diffstat (limited to 'cxx11/c++11-test-variadic_templates-N2555.cpp')
-rw-r--r-- | cxx11/c++11-test-variadic_templates-N2555.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/cxx11/c++11-test-variadic_templates-N2555.cpp b/cxx11/c++11-test-variadic_templates-N2555.cpp new file mode 100644 index 0000000..79fae84 --- /dev/null +++ b/cxx11/c++11-test-variadic_templates-N2555.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;
+}
|