1
2 #include <boost/parameter.hpp>
3
4 namespace test {
5
6 BOOST_PARAMETER_NAME(title)
BOOST_PARAMETER_NAME(width)7 BOOST_PARAMETER_NAME(width)
8 BOOST_PARAMETER_NAME(titlebar)
9
10 BOOST_PARAMETER_FUNCTION((int), new_window, tag,
11 (required (title,*)(width,*)(titlebar,*))
12 )
13 {
14 return 0;
15 }
16
17 BOOST_PARAMETER_TEMPLATE_KEYWORD(deleter)
18 BOOST_PARAMETER_TEMPLATE_KEYWORD(copy_policy)
19
20 template <typename T>
21 struct Deallocate
22 {
23 };
24
25 struct DeepCopy
26 {
27 };
28
29 struct Foo
30 {
31 };
32
33 template <typename T, typename A0, typename A1>
34 struct smart_ptr
35 {
smart_ptrtest::smart_ptr36 smart_ptr(test::Foo*)
37 {
38 }
39 };
40 }
41
42 #include <boost/core/lightweight_test.hpp>
43
main()44 int main()
45 {
46 char const* alert_s = "alert";
47 int x = test::new_window(alert_s, test::_width=10, test::_titlebar=false);
48 test::Foo* foo = new test::Foo();
49 test::smart_ptr<
50 test::Foo
51 , test::deleter<test::Deallocate<test::Foo> >
52 , test::copy_policy<test::DeepCopy>
53 > p(foo);
54 delete foo;
55 return boost::report_errors();
56 }
57
58