20#include "ns3/core-module.h"
21#include "ns3/length.h"
45 std::cout <<
"\nConstructors:"
46 <<
"\nLength (" << input <<
", Unit::Meter) = " <<
Length(input, Length::Unit::Meter)
47 <<
"\nLength (" << input <<
", \"m\") = " <<
Length(input,
"m") <<
"\nLength ("
48 << input <<
", \"meter\") = " <<
Length(input,
"meter") <<
"\nLength (Quantity("
49 << input <<
", Unit::Meter)) = " <<
Length(quantity)
50 <<
"\nLength (\"5m\") = " <<
Length(
"5m") <<
"\nLength (\"5 m\") = " <<
Length(
"5 m")
51 <<
"\nLength (\"5meter\") = " <<
Length(
"5meter")
52 <<
"\nLength (\"5 meter\") = " <<
Length(
"5 meter")
53 <<
"\nLength (\"5meters\") = " <<
Length(
"5meters")
54 <<
"\nLength (\"5 meters\") = " <<
Length(
"5 meters") << std::endl;
66 Length moonDistance(3.84402e8, Length::Unit::Meter);
71 <<
"Distance to moon = " << moonDistance <<
"\n"
72 <<
"In Feet: " << moonDistance.
As(Length::Unit::Foot) <<
"\n"
73 <<
"In Miles: " << moonDistance.
As(Length::Unit::Mile) <<
"\n"
74 <<
"In Kilometers: " << moonDistance.
As(Length::Unit::Kilometer) << std::endl;
92 <<
"Arithmetic Operations:\n"
93 <<
"Addition: " << oneMeter <<
" + " << twoMeter <<
" = " << (oneMeter + twoMeter)
95 <<
"Subtraction: " << twoMeter <<
" - " << oneMeter <<
" = " << (twoMeter - oneMeter)
97 <<
"Multiplication By Scalar: " << oneMeter <<
" * " << scale <<
" = "
98 << (oneMeter * scale) <<
"\n"
99 <<
"Division: " << oneMeter <<
" / " << twoMeter <<
" = " << (oneMeter / twoMeter)
101 <<
"Division By Scalar: " << oneMeter <<
" / " << scale <<
" = " << (oneMeter / scale)
119 <<
"Comparison Operations:\n"
120 << std::boolalpha <<
"Equality: " << oneMeter <<
" == " << oneMeter <<
" is "
121 << (oneMeter == oneMeter) <<
"\n"
122 <<
"Equality: " << oneMeter <<
" == " << twoMeter <<
" is " << (oneMeter == twoMeter)
124 <<
"Inequality: " << oneMeter <<
" != " << oneMeter <<
" is "
125 << (oneMeter != oneMeter) <<
"\n"
126 <<
"Inequality: " << oneMeter <<
" != " << twoMeter <<
" is "
127 << (oneMeter != twoMeter) <<
"\n"
128 <<
"Lesser: " << oneMeter <<
" < " << oneMeter <<
" is " << (oneMeter < oneMeter)
130 <<
"Lesser: " << oneMeter <<
" < " << twoMeter <<
" is " << (oneMeter < twoMeter)
132 <<
"Lesser: " << threeMeter <<
" < " << oneMeter <<
" is " << (threeMeter < oneMeter)
134 <<
"Greater: " << oneMeter <<
" > " << oneMeter <<
" is " << (oneMeter > oneMeter)
136 <<
"Greater: " << oneMeter <<
" > " << twoMeter <<
" is " << (oneMeter > twoMeter)
138 <<
"Greater: " << threeMeter <<
" > " << oneMeter <<
" is " << (threeMeter > oneMeter)
156 int64_t count =
Div(totalLen, pieceLen, &remainder);
158 std::cout <<
"\nHow many times can a " << totalLen.
As(Length::Unit::Foot) <<
" length "
159 <<
"be split into " << pieceLen.
As(Length::Unit::Foot) <<
" sized pieces? " << count
160 <<
"\nremainder: " << remainder.
As(Length::Unit::Foot) << std::endl;
162 std::cout <<
"\nHow much remains after splitting a " << totalLen.
As(Length::Unit::Foot)
163 <<
" length into " << pieceLen.
As(Length::Unit::Foot) <<
" sized pieces? "
164 <<
Mod(totalLen, pieceLen).
As(Length::Unit::Foot) << std::endl;
168main(
int argc,
char** argv)
An immutable class which represents a value in a specific length unit.
Represents a length in meters.
Quantity As(Unit unit) const
Create a Quantity in a specific unit from a Length.
Length Feet(double value)
Construct a length from a value in the indicated unit.
Length Mod(const Length &numerator, const Length &denominator)
Calculate the amount remaining after dividing two lengths.
void Conversions()
Demonstrates the use of ns3::Length conversions.
Length Meters(double value)
Construct a length from a value in the indicated unit.
int64_t Div(const Length &numerator, const Length &denominator, Length *remainder)
Calculate how many times numerator can be split into denominator sized pieces.
void Constructors()
Demonstrates the use of ns3::Length constructors.
void EqualityOperators()
Demonstrates the use of ns3::Length equality operators.
void ArithmeticOperators()
Demonstrates the use of ns3::Length arithmetic operators.
void DivAndMod()
Demonstrates the use of ns3::Length multiplications and divisions.
Every class exported by the ns3 library is enclosed in the ns3 namespace.