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