~ubuntu-branches/ubuntu/saucy/deal.ii/saucy

« back to all changes in this revision

Viewing changes to contrib/boost-1.46.1/include/boost/mpl/aux_/push_front_impl.hpp

  • Committer: Package Import Robot
  • Author(s): "Adam C. Powell, IV", Adam C. Powell, IV, Christophe Trophime
  • Date: 2012-02-21 06:57:30 UTC
  • mfrom: (3.1.7 sid)
  • Revision ID: package-import@ubuntu.com-20120221065730-r2iz70lg557wcd2e
Tags: 7.1.0-1
[ Adam C. Powell, IV ]
* New upstream (closes: #652057).
* Updated to use PETSc and SLEPc 3.2, and forward-ported all patches.
* Removed NetCDF Build-Depends because it uses serial HDF5.
* Made Sacado cmath patch work with new configure.
* Moved -dev package symlink lines in rules to arch all section.

[ Christophe Trophime ]
* debian/rules:
   - add dh_strip --dbg-package to generate dbg package (closes: #652058)
   - add .install files to simplify rules
* Add support for mumps, arpack (closes: #637655)
* Add patch for slepc 3.2 (closes: #659245)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
#ifndef BOOST_MPL_AUX_PUSH_FRONT_IMPL_HPP_INCLUDED
 
3
#define BOOST_MPL_AUX_PUSH_FRONT_IMPL_HPP_INCLUDED
 
4
 
 
5
// Copyright Aleksey Gurtovoy 2000-2008
 
6
//
 
7
// Distributed under the Boost Software License, Version 1.0. 
 
8
// (See accompanying file LICENSE_1_0.txt or copy at 
 
9
// http://www.boost.org/LICENSE_1_0.txt)
 
10
//
 
11
// See http://www.boost.org/libs/mpl for documentation.
 
12
 
 
13
// $Id: push_front_impl.hpp 55679 2009-08-20 07:50:16Z agurtovoy $
 
14
// $Date: 2009-08-20 03:50:16 -0400 (Thu, 20 Aug 2009) $
 
15
// $Revision: 55679 $
 
16
 
 
17
#include <boost/mpl/push_front_fwd.hpp>
 
18
#include <boost/mpl/assert.hpp>
 
19
#include <boost/mpl/aux_/has_type.hpp>
 
20
#include <boost/mpl/aux_/traits_lambda_spec.hpp>
 
21
#include <boost/mpl/aux_/config/forwarding.hpp>
 
22
#include <boost/mpl/aux_/config/static_constant.hpp>
 
23
 
 
24
#include <boost/type_traits/is_same.hpp>
 
25
 
 
26
namespace boost { namespace mpl {
 
27
 
 
28
struct has_push_front_arg {};
 
29
 
 
30
// agurt 05/feb/04: no default implementation; the stub definition is needed 
 
31
// to enable the default 'has_push_front' implementation below
 
32
 
 
33
template< typename Tag >
 
34
struct push_front_impl
 
35
{
 
36
    template< typename Sequence, typename T > struct apply
 
37
    {
 
38
        // should be instantiated only in the context of 'has_push_front_impl';
 
39
        // if you've got an assert here, you are requesting a 'push_front' 
 
40
        // specialization that doesn't exist.
 
41
        BOOST_MPL_ASSERT_MSG(
 
42
              ( boost::is_same< T, has_push_front_arg >::value )
 
43
            , REQUESTED_PUSH_FRONT_SPECIALIZATION_FOR_SEQUENCE_DOES_NOT_EXIST
 
44
            , ( Sequence )
 
45
            );
 
46
    };
 
47
};
 
48
 
 
49
template< typename Tag >
 
50
struct has_push_front_impl
 
51
{
 
52
    template< typename Seq > struct apply
 
53
#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
 
54
        : aux::has_type< push_front< Seq, has_push_front_arg > >
 
55
    {
 
56
#else
 
57
    {
 
58
        typedef aux::has_type< push_front< Seq, has_push_front_arg > > type;
 
59
        BOOST_STATIC_CONSTANT(bool, value = 
 
60
              (aux::has_type< push_front< Seq, has_push_front_arg > >::value)
 
61
            );
 
62
#endif
 
63
    };
 
64
};
 
65
 
 
66
BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2, push_front_impl)
 
67
BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, has_push_front_impl)
 
68
 
 
69
}}
 
70
 
 
71
#endif // BOOST_MPL_AUX_PUSH_FRONT_IMPL_HPP_INCLUDED