summaryrefslogtreecommitdiff
path: root/ACE/tests/Compiler_Features_12_Test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/tests/Compiler_Features_12_Test.cpp')
-rw-r--r--ACE/tests/Compiler_Features_12_Test.cpp59
1 files changed, 59 insertions, 0 deletions
diff --git a/ACE/tests/Compiler_Features_12_Test.cpp b/ACE/tests/Compiler_Features_12_Test.cpp
new file mode 100644
index 00000000000..3ec0826e445
--- /dev/null
+++ b/ACE/tests/Compiler_Features_12_Test.cpp
@@ -0,0 +1,59 @@
+// $Id$
+
+/**
+ * @file
+ *
+ * This program checks if the compiler / platform supports template
+ * template parameters. The motivation for this test was a discussion
+ * on the development mailing list, and the documentation was captured
+ * in:
+ *
+ * http://bugzilla.dre.vanderbilt.edu/show_bug.cgi?id=3715
+ *
+ */
+
+#include "test_config.h"
+
+
+
+template<typename T>
+struct Pair
+{
+ T x1;
+ T x2;
+};
+
+template<typename T>
+struct Triple
+{
+ T t1;
+ T t2;
+ T t3;
+};
+
+template<typename T, template <typename> class Tuple>
+struct Array
+{
+ Tuple<T> array[5];
+};
+
+int
+run_main (int, ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT("Compiler_Features_12_Test"));
+
+ // As usual, the exit status from the test is 0 on success, 1 on
+ // failure
+ int status = 0;
+
+ Array<int, Pair> pairs;
+ pairs.array[0].x1 = 0;
+ ACE_UNUSED_ARG (pairs);
+
+ Array<int, Triple> triples;
+ triples.array[1].t3 = 0;
+ ACE_UNUSED_ARG (triples);
+
+ ACE_END_TEST;
+ return status;
+}