PageRenderTime 11ms CodeModel.GetById 2ms app.highlight 7ms RepoModel.GetById 1ms app.codeStats 0ms

/Src/Dependencies/Boost/libs/parameter/test/singular.cpp

http://hadesmem.googlecode.com/
C++ | 42 lines | 29 code | 10 blank | 3 comment | 2 complexity | 93f0d6d1f085106c0e03282cbab400f1 MD5 | raw file
 1// Copyright Daniel Wallin 2005. Use, modification and distribution is
 2// subject to the Boost Software License, Version 1.0. (See accompanying
 3// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 4
 5#include <boost/parameter/keyword.hpp>
 6#include <boost/detail/lightweight_test.hpp>
 7
 8BOOST_PARAMETER_KEYWORD(tag, x)
 9BOOST_PARAMETER_KEYWORD(tag, y)
10    
11struct default_src
12{
13    typedef int result_type;
14
15    int operator()() const
16    {
17        return 0;
18    }
19};
20    
21template <class ArgumentPack, class K, class T>
22void check(ArgumentPack const& p, K const& kw, T const& value)
23{
24    BOOST_TEST(p[kw] == value);
25}
26
27int main()
28{
29    check(x = 20, x, 20);
30    check(y = 20, y, 20);
31
32    check(x = 20, x | 0, 20);
33    check(y = 20, y | 0, 20);
34
35    check(x = 20, x | default_src(), 20);
36    check(y = 20, y | default_src(), 20);
37    
38    check(y = 20, x | 0, 0);
39    check(y = 20, x || default_src(), 0);
40    return boost::report_errors();
41}
42