base_unit Sınıfı
Giriş
Şu satırı dahil ederiz
Şöyle yaparız.
Şöyle yaparız
Bir base_unit'ten diğerine çevrim oranı için şöyle yaparız.
milden metrik birime dönmek için şöyle yaparız.
derived_dimension Sınıfı yazısına taşıdım.
quantity Sınıfı
Giriş
Şu satırı dahil ederiz.
unit tipi bir dimension + system bilgisine sahiptir.
Örnek
Şöyle yaparız.
Giriş
Şu satırı dahil ederiz
#include <boost/units/base_dimension.hpp>
#include <boost/units/io.hpp>
#include <boost/units/quantity.hpp>
#include <boost/units/unit.hpp>
#include <boost/units/base_unit.hpp>
#include <boost/units/systems/si/mass.hpp>
using namespace boost::units;
using namespace boost::units::si;
TanımlamaŞöyle yaparız.
namespace units {
struct slug_base_unit : base_unit<slug_base_unit, mass_dimension, 1>
{
static std::string name() { return "slug"; }
static std::string symbol() { return "sl"; }
};
typedef slug_base_unit::unit_type slug_unit;
/// unit constants
BOOST_UNITS_STATIC_CONSTANT(slug, slug_unit);
BOOST_UNITS_STATIC_CONSTANT(slugs, slug_unit);
}
}
ConstructorŞöyle yaparız
quantity<slug_unit> A = 10.0 * slugs;
inch_base_unit SınıfıBir base_unit'ten diğerine çevrim oranı için şöyle yaparız.
conversion_factor(imperial::inch_base_unit::unit_type(), si::meter_base_unit::unit_type())
mile_base_unit Sınıfımilden metrik birime dönmek için şöyle yaparız.
#include <boost/units/base_units/us/mile.hpp>
#include <boost/units/base_units/metric/hour.hpp>
typedef boost::units::us::mile_base_unit::unit_type mile_unit;
typedef boost::units::metric::hour_base_unit::unit_type hour_unit;
typedef boost::units::divide_typeof_helper<mile_unit, hour_unit>::type miles_per_hour;
derived_dimension Sınıfıderived_dimension Sınıfı yazısına taşıdım.
quantity Sınıfı
Giriş
Şu satırı dahil ederiz.
Örnek
Şöyle yaparız.
Şöyle yaparız.
Constructor parametresi olarak sayı * unit verilir.
Örnek
Şöyle yaparız.
Şöyle yaparız. Aynı birime 1, 1000, ve 100,000 ile çarpılır.
Şu satırı dahil ederiz.
#include <boost/units/quantity.hpp>
Açıklaması şöyle.A quantity represents a concrete amount of a unit. Thus, while the meter is the base unit of length in the SI system, 5.5 meters is a quantity of length in that system.
İmzası şöyle.
template<class Unit, class Y=double> class quantity;
İlk parametre unit (length,time,volume vs. gibi) ikinci parametre ise unit'in hangi tipten saklanacağıdır.Örnek
Şöyle yaparız.
using boost::units::si::meters;
using Meter = boost::units::quantity<boost::units::si::length, double>;
ÖrnekŞöyle yaparız.
typedef boost::units::quantity<Hertz_unit , double> Hertz;
typedef boost::units::quantity<KilloHertz_unit, double> KilloHertz;
typedef boost::units::quantity<MegaHertz_unit , double> MegaHertz;
Daha önce tanımladığımız sabitleri quantit'ye çevirmek için şöyle yaparız.Hertz operator"" _Hz (long double val) { return Hertz (val * Hz); }
KilloHertz operator"" _KHz (long double val) { return KilloHertz(val * KHz); }
MegaHertz operator"" _MHz (long double val) { return MegaHertz (val * MHz); }
Kullanmak için şöyle yaparız.Hertz freq_1 = (10 * Hz);
KilloHertz freq_2 = (10 * KHz);
MegaHertz freq_3 = (10 * MHz);
// OR
Hertz freq_4 = 10.0_Hz;
KilloHertz freq_5 = 10.0_KHz;
MegaHertz freq_6 = 10.0_MHz;
// Convert between units
Hertz freq_7 = static_cast<Hertz>(10 * KHz);
ConstructorConstructor parametresi olarak sayı * unit verilir.
Örnek
Şöyle yaparız.
quantity<si::lenght> x = (10 * si::meters);
Şöyle yaparız.quantity<si::foot_base_unit::unit_type> f (x); //32.8
Bazı çevrimleri yaptırmazquantity<si::time> t (x); //Metre zamana çevrilemez
Şöyle yaparız.quantity<mass> C = 2.0 * kilograms;
Şöyle yaparız.quantity<si::time> Time = 1.0 * second;
quantity<volume> vol = 1.0 * cubic_meters;
Kendi birimimiz ile şöyle yaparız.typedef boost::units::quantity<mass_flow_rate_unit, double> mass_flow_rate;
BOOST_UNITS_STATIC_CONSTANT(kilogram_per_seconds, mass_flow_rate);
Scale SınıfıŞöyle yaparız. Aynı birime 1, 1000, ve 100,000 ile çarpılır.
typedef bu::make_scaled_unit<si::frequency, scale<10, static_rational<0> > >::type
Hertz_unit;
typedef bu::make_scaled_unit<si::frequency, scale<10, static_rational<3> > >::type
KilloHertz_unit;
typedef bu::make_scaled_unit<si::frequency, scale<10, static_rational<6> > >::type
MegaHertz_unit;
Bazı sabitler tanımlanır. Şöyle yaparız.
BOOST_UNITS_STATIC_CONSTANT( Hz, Hertz_unit );
BOOST_UNITS_STATIC_CONSTANT(KHz, KilloHertz_unit);
BOOST_UNITS_STATIC_CONSTANT(MHz, MegaHertz_unit );
unit SınıfıŞu satırı dahil ederiz.
#include <boost/units/unit.hpp>
Tanımlamaunit tipi bir dimension + system bilgisine sahiptir.
Örnek
Şöyle yaparız.
typedef boost::units::derived_dimension<...>::type mass_flow_rate_dimension;
typedef boost::units::unit<mass_flow_rate_dimension,boost::units::si::system>
mass_flow_rate_unit;
Hiç yorum yok:
Yorum Gönder