1 /*-----------------------------------------------------------------------------+
2 Copyright (c) 2011-2011: Joachim Faulhaber
3 +------------------------------------------------------------------------------+
4    Distributed under the Boost Software License, Version 1.0.
5       (See accompanying file LICENCE.txt or copy at
6            http://www.boost.org/LICENSE_1_0.txt)
7 +-----------------------------------------------------------------------------*/
8 #define BOOST_TEST_MODULE icl::cmp_clang_ttp_passing unit test
9 #include <libs/icl/test/disable_test_warnings.hpp>
10 #include <boost/config.hpp>
11 #include "../unit_test_unwarned.hpp"
12 
13 
14 namespace sep
15 {
16     template<class T>class less{};
17 
18     template
19     <
20         class T,
21         template<class>class Less = sep::less
22     >
23     class interv
24     {
25     public:
26         typedef interv<T,Less> type;
27     };
28 
29     template
30     <
31         class T,
32         template<class>class Less = sep::less,
33         class I = typename sep::interv<T,Less>::type
34     >
35     class cont
36     {
37     public:
test() const38         bool test()const { return true; }
39     };
40 }//namespace sep
41 
42 template
43 <
44     template
45     <
46         class _T,
47         template<class>class _Less = sep::less,
48         class I = typename sep::interv<_T,_Less>::type
49     >
50     class Cont,
51     class T
52 >
test_ttp()53 bool test_ttp()
54 {
55     typedef Cont<T> cont_type;
56     cont_type test_cont;
57     return test_cont.test();
58 };
59 
BOOST_AUTO_TEST_CASE(dummy)60 BOOST_AUTO_TEST_CASE(dummy)
61 {
62     bool result = test_ttp<sep::cont, int>();
63     BOOST_CHECK( result );
64 }
65 
66