/usr/include/boost/units/scaled_base_unit.hpp is in libboost1.55-dev 1.55.0+dfsg-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 | // Boost.Units - A C++ library for zero-overhead dimensional analysis and
// unit/quantity manipulation and conversion
//
// Copyright (C) 2003-2008 Matthias Christian Schabel
// Copyright (C) 2008 Steven Watanabe
//
// Distributed under the Boost Software License, Version 1.0. (See
// accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
#ifndef BOOST_UNITS_SCALED_BASE_UNIT_HPP_INCLUDED
#define BOOST_UNITS_SCALED_BASE_UNIT_HPP_INCLUDED
#include <string>
#include <boost/mpl/bool.hpp>
#include <boost/mpl/less.hpp>
#include <boost/type_traits/is_same.hpp>
#include <boost/type_traits/detail/ice_and.hpp>
#include <boost/type_traits/detail/ice_or.hpp>
#include <boost/units/config.hpp>
#include <boost/units/dimension.hpp>
#include <boost/units/static_rational.hpp>
#include <boost/units/units_fwd.hpp>
namespace boost {
namespace units {
template<class T>
struct heterogeneous_system;
template<class T, class D, class Scale>
struct heterogeneous_system_impl;
template<class T, class E>
struct heterogeneous_system_dim;
template<class T>
struct base_unit_info;
/// INTERNAL ONLY
struct scaled_base_unit_tag {};
template<class S, class Scale>
struct scaled_base_unit
{
/// INTERNAL ONLY
typedef void boost_units_is_base_unit_type;
typedef scaled_base_unit type;
typedef scaled_base_unit_tag tag;
typedef S system_type;
typedef Scale scale_type;
typedef typename S::dimension_type dimension_type;
#ifdef BOOST_UNITS_DOXYGEN
typedef detail::unspecified unit_type;
#else
typedef unit<
dimension_type,
heterogeneous_system<
heterogeneous_system_impl<
list<
heterogeneous_system_dim<scaled_base_unit,static_rational<1> >,
dimensionless_type
>,
dimension_type,
dimensionless_type
>
>
> unit_type;
#endif
static std::string symbol()
{
return(Scale::symbol() + base_unit_info<S>::symbol());
}
static std::string name()
{
return(Scale::name() + base_unit_info<S>::name());
}
};
} // namespace units
} // namespace boost
#if BOOST_UNITS_HAS_BOOST_TYPEOF
#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
BOOST_TYPEOF_REGISTER_TEMPLATE(boost::units::scaled_base_unit, (class)(class))
#endif
namespace boost {
#ifndef BOOST_UNITS_DOXYGEN
namespace mpl {
/// INTERNAL ONLY
template<class Tag>
struct less_impl<boost::units::scaled_base_unit_tag, Tag>
{
template<class T0, class T1>
struct apply : mpl::bool_<
boost::type_traits::ice_or<(mpl::less<typename T0::system_type, T1>::value),
(boost::type_traits::ice_and<boost::is_same<typename T0::system_type, T1>::value, (T0::scale_type::exponent::Numerator) < 0>::value)>::value> {};
};
/// INTERNAL ONLY
template<class Tag>
struct less_impl<Tag, boost::units::scaled_base_unit_tag>
{
template<class T0, class T1>
struct apply : mpl::bool_<
boost::type_traits::ice_or<(mpl::less<T0, typename T1::system_type>::value),
boost::type_traits::ice_and<(boost::is_same<T0, typename T1::system_type>::value), ((T1::scale_type::exponent::Numerator) > 0)>::value>::value> {};
};
/// INTERNAL ONLY
template<>
struct less_impl<boost::units::scaled_base_unit_tag, boost::units::scaled_base_unit_tag>
{
template<class T0, class T1>
struct apply : mpl::bool_<
boost::type_traits::ice_or<(mpl::less<typename T0::system_type, typename T1::system_type>::value),
boost::type_traits::ice_and<(boost::is_same<typename T0::system_type, typename T1::system_type>::value),
boost::type_traits::ice_or<((T0::scale_type::base) < (T1::scale_type::base)),
boost::type_traits::ice_and<((T0::scale_type::base) == (T1::scale_type::base)),
(mpl::less<typename T0::scale_type::exponent,typename T1::scale_type::exponent>::value)>::value>::value>::value>::value> {};
};
} // namespace mpl
#endif
} // namespace boost
#endif
|