File indexing completed on 2024-04-21 15:04:38

0001 /*
0002  *   SPDX-FileCopyrightText: 2007-2009 Petri Damstén <damu@iki.fi>
0003  *   SPDX-FileCopyrightText: 2014 John Layt <jlayt@kde.org>
0004  *
0005  *   SPDX-License-Identifier: LGPL-2.0-or-later
0006  */
0007 
0008 #ifndef KUNITCONVERSION_UNIT_H
0009 #define KUNITCONVERSION_UNIT_H
0010 
0011 #include "kunitconversion/kunitconversion_export.h"
0012 
0013 #include <QExplicitlySharedDataPointer>
0014 #include <QString>
0015 
0016 namespace KUnitConversion
0017 {
0018 enum CategoryId {
0019     InvalidCategory = -1,
0020     LengthCategory,
0021     AreaCategory,
0022     VolumeCategory,
0023     TemperatureCategory,
0024     VelocityCategory,
0025     MassCategory,
0026     PressureCategory,
0027     EnergyCategory,
0028     CurrencyCategory,
0029     PowerCategory,
0030     TimeCategory,
0031     FuelEfficiencyCategory,
0032     DensityCategory,
0033     AccelerationCategory,
0034     AngleCategory,
0035     FrequencyCategory,
0036     ForceCategory,
0037     /** @since 5.27 */
0038     ThermalConductivityCategory,
0039     /** @since 5.27 */
0040     ThermalFluxCategory,
0041     /** @since 5.27 */
0042     ThermalGenerationCategory,
0043     /** @since 5.27 */
0044     VoltageCategory,
0045     /** @since 5.27 */
0046     ElectricalCurrentCategory,
0047     /** @since 5.27 */
0048     ElectricalResistanceCategory,
0049     /** @since 5.53 */
0050     PermeabilityCategory,
0051     /** @since 5.61 **/
0052     BinaryDataCategory
0053 };
0054 
0055 enum UnitId {
0056     InvalidUnit = -1,
0057     NoUnit = 0,
0058     Percent = 1,
0059 
0060     // Area
0061     SquareYottameter = 1000,
0062     SquareZettameter,
0063     SquareExameter,
0064     SquarePetameter,
0065     SquareTerameter,
0066     SquareGigameter,
0067     SquareMegameter,
0068     SquareKilometer,
0069     SquareHectometer,
0070     SquareDecameter,
0071     SquareMeter,
0072     SquareDecimeter,
0073     SquareCentimeter,
0074     SquareMillimeter,
0075     SquareMicrometer,
0076     SquareNanometer,
0077     SquarePicometer,
0078     SquareFemtometer,
0079     SquareAttometer,
0080     SquareZeptometer,
0081     SquareYoctometer,
0082     Acre,
0083     SquareFoot,
0084     SquareInch,
0085     SquareMile,
0086 
0087     // Length
0088     Yottameter = 2000,
0089     Zettameter,
0090     Exameter,
0091     Petameter,
0092     Terameter,
0093     Gigameter,
0094     Megameter,
0095     Kilometer,
0096     Hectometer,
0097     Decameter,
0098     Meter,
0099     Decimeter,
0100     Centimeter,
0101     Millimeter,
0102     Micrometer,
0103     Nanometer,
0104     Picometer,
0105     Femtometer,
0106     Attometer,
0107     Zeptometer,
0108     Yoctometer,
0109     Inch,
0110     Foot,
0111     Yard,
0112     Mile,
0113     NauticalMile,
0114     LightYear,
0115     Parsec,
0116     AstronomicalUnit,
0117     Thou,
0118     Angstrom,
0119 
0120     // Volume
0121     CubicYottameter = 3000,
0122     CubicZettameter,
0123     CubicExameter,
0124     CubicPetameter,
0125     CubicTerameter,
0126     CubicGigameter,
0127     CubicMegameter,
0128     CubicKilometer,
0129     CubicHectometer,
0130     CubicDecameter,
0131     CubicMeter,
0132     CubicDecimeter,
0133     CubicCentimeter,
0134     CubicMillimeter,
0135     CubicMicrometer,
0136     CubicNanometer,
0137     CubicPicometer,
0138     CubicFemtometer,
0139     CubicAttometer,
0140     CubicZeptometer,
0141     CubicYoctometer,
0142     Yottaliter,
0143     Zettaliter,
0144     Exaliter,
0145     Petaliter,
0146     Teraliter,
0147     Gigaliter,
0148     Megaliter,
0149     Kiloliter,
0150     Hectoliter,
0151     Decaliter,
0152     Liter,
0153     Deciliter,
0154     Centiliter,
0155     Milliliter,
0156     Microliter,
0157     Nanoliter,
0158     Picoliter,
0159     Femtoliter,
0160     Attoliter,
0161     Zeptoliter,
0162     Yoctoliter,
0163     CubicFoot,
0164     CubicInch,
0165     CubicMile,
0166     FluidOunce,
0167     Cup,
0168     Teaspoon,
0169     Tablespoon,
0170     GallonUS,
0171     PintImperial,
0172     /** @since 5.53 */
0173     OilBarrel,
0174     /** @since 5.70 */
0175     GallonImperial,
0176     PintUS,
0177 
0178     // Mass
0179     Yottagram = 4000,
0180     Zettagram,
0181     Exagram,
0182     Petagram,
0183     Teragram,
0184     Gigagram,
0185     Megagram,
0186     Kilogram,
0187     Hectogram,
0188     Decagram,
0189     Gram,
0190     Decigram,
0191     Centigram,
0192     Milligram,
0193     Microgram,
0194     Nanogram,
0195     Picogram,
0196     Femtogram,
0197     Attogram,
0198     Zeptogram,
0199     Yoctogram,
0200     Ton,
0201     Carat,
0202     Pound,
0203     Ounce,
0204     TroyOunce,
0205     MassNewton,
0206     Kilonewton,
0207 
0208     /** @since 5.26 */
0209     Stone,
0210 
0211     // Pressure
0212     Yottapascal = 5000,
0213     Zettapascal,
0214     Exapascal,
0215     Petapascal,
0216     Terapascal,
0217     Gigapascal,
0218     Megapascal,
0219     Kilopascal,
0220     Hectopascal,
0221     Decapascal,
0222     Pascal,
0223     Decipascal,
0224     Centipascal,
0225     Millipascal,
0226     Micropascal,
0227     Nanopascal,
0228     Picopascal,
0229     Femtopascal,
0230     Attopascal,
0231     Zeptopascal,
0232     Yoctopascal,
0233     Bar,
0234     Millibar,
0235     Decibar,
0236     Torr,
0237     TechnicalAtmosphere,
0238     Atmosphere,
0239     PoundForcePerSquareInch,
0240     InchesOfMercury,
0241     MillimetersOfMercury,
0242 
0243     // Temperature
0244     Kelvin = 6000,
0245     Celsius,
0246     Fahrenheit,
0247     Rankine,
0248     Delisle,
0249     TemperatureNewton,
0250     Reaumur,
0251     Romer,
0252 
0253     // Energy
0254     Yottajoule = 7000,
0255     Zettajoule,
0256     Exajoule,
0257     Petajoule,
0258     Terajoule,
0259     Gigajoule,
0260     Megajoule,
0261     Kilojoule,
0262     Hectojoule,
0263     Decajoule,
0264     Joule,
0265     Decijoule,
0266     Centijoule,
0267     Millijoule,
0268     Microjoule,
0269     Nanojoule,
0270     Picojoule,
0271     Femtojoule,
0272     Attojoule,
0273     Zeptojoule,
0274     Yoctojoule,
0275     GuidelineDailyAmount,
0276     Electronvolt,
0277     Rydberg,
0278     Kilocalorie,
0279     PhotonWavelength,
0280     KiloJoulePerMole,
0281     JoulePerMole,
0282     /** @since 5.27 */
0283     Btu,
0284     /** @since 5.27 */
0285     Erg,
0286 
0287     // Currency
0288     Eur = 8000,
0289     Ats,
0290     Bef,
0291     Nlg,
0292     Fim,
0293     Frf,
0294     Dem,
0295     Iep,
0296     Itl,
0297     Luf,
0298     Pte,
0299     Esp,
0300     Grd,
0301     Sit,
0302     Cyp,
0303     Mtl,
0304     Skk,
0305     Usd,
0306     Jpy,
0307     Bgn,
0308     Czk,
0309     Dkk,
0310     Eek,
0311     Gbp,
0312     Huf,
0313     Ltl,
0314     Lvl,
0315     Pln,
0316     Ron,
0317     Sek,
0318     Chf,
0319     Nok,
0320     Hrk,
0321     Rub,
0322     Try,
0323     Aud,
0324     Brl,
0325     Cad,
0326     Cny,
0327     Hkd,
0328     Idr,
0329     Inr,
0330     Krw,
0331     Mxn,
0332     Myr,
0333     Nzd,
0334     Php,
0335     Sgd,
0336     Thb,
0337     Zar,
0338     Ils,
0339     Isk,
0340 
0341     // Velocity
0342     MeterPerSecond = 9000,
0343     KilometerPerHour,
0344     MilePerHour,
0345     FootPerSecond,
0346     InchPerSecond,
0347     Knot,
0348     Mach,
0349     SpeedOfLight,
0350     Beaufort,
0351 
0352     // Power
0353     Yottawatt = 10000,
0354     Zettawatt,
0355     Exawatt,
0356     Petawatt,
0357     Terawatt,
0358     Gigawatt,
0359     Megawatt,
0360     Kilowatt,
0361     Hectowatt,
0362     Decawatt,
0363     Watt,
0364     Deciwatt,
0365     Centiwatt,
0366     Milliwatt,
0367     Microwatt,
0368     Nanowatt,
0369     Picowatt,
0370     Femtowatt,
0371     Attowatt,
0372     Zeptowatt,
0373     Yoctowatt,
0374     Horsepower,
0375     /** @since 5.62 */
0376     DecibelKilowatt,
0377     DecibelWatt,
0378     DecibelMilliwatt,
0379     DecibelMicrowatt,
0380 
0381     // Time
0382     Yottasecond = 11000,
0383     Zettasecond,
0384     Exasecond,
0385     Petasecond,
0386     Terasecond,
0387     Gigasecond,
0388     Megasecond,
0389     Kilosecond,
0390     Hectosecond,
0391     Decasecond,
0392     Second,
0393     Decisecond,
0394     Centisecond,
0395     Millisecond,
0396     Microsecond,
0397     Nanosecond,
0398     Picosecond,
0399     Femtosecond,
0400     Attosecond,
0401     Zeptosecond,
0402     Yoctosecond,
0403     Minute,
0404     Hour,
0405     Day,
0406     Week,
0407     JulianYear,
0408     LeapYear,
0409     Year,
0410 
0411     // FuelEfficiency
0412     LitersPer100Kilometers = 12000,
0413     MilePerUsGallon,
0414     MilePerImperialGallon,
0415     KilometrePerLitre,
0416 
0417     // Density
0418     YottakilogramsPerCubicMeter = 13000,
0419     ZettakilogramPerCubicMeter,
0420     ExakilogramPerCubicMeter,
0421     PetakilogramPerCubicMeter,
0422     TerakilogramPerCubicMeter,
0423     GigakilogramPerCubicMeter,
0424     MegakilogramPerCubicMeter,
0425     KilokilogramPerCubicMeter,
0426     HectokilogramsPerCubicMeter,
0427     DecakilogramsPerCubicMeter,
0428     KilogramsPerCubicMeter,
0429     DecikilogramsPerCubicMeter,
0430     CentikilogramsPerCubicMeter,
0431     MillikilogramsPerCubicMeter,
0432     MicrokilogramsPerCubicMeter,
0433     NanokilogramsPerCubicMeter,
0434     PicokilogramsPerCubicMeter,
0435     FemtokilogramsPerCubicMeter,
0436     AttokilogramsPerCubicMeter,
0437     ZeptokilogramsPerCubicMeter,
0438     YoctokilogramsPerCubicMeter,
0439     KilogramPerLiter,
0440     GramPerLiter,
0441     GramPerMilliliter,
0442     OuncePerCubicInch,
0443     OuncePerCubicFoot,
0444     OuncePerCubicYard,
0445     PoundPerCubicInch,
0446     PoundPerCubicFoot,
0447     PoundPerCubicYard,
0448 
0449     // Acceleration
0450     MetresPerSecondSquared = 14000,
0451     FeetPerSecondSquared,
0452     StandardGravity,
0453 
0454     // Force
0455     Yottanewton = 15000,
0456     Zettanewton,
0457     Exanewton,
0458     Petanewton,
0459     Teranewton,
0460     Giganewton,
0461     Meganewton,
0462     KilonewtonForce,
0463     Hectonewton,
0464     Decanewton,
0465     Newton,
0466     Decinewton,
0467     Centinewton,
0468     Millinewton,
0469     Micronewton,
0470     Nanonewton,
0471     Piconewton,
0472     Femtonewton,
0473     Attonewton,
0474     Zeptonewton,
0475     Yoctonewton,
0476     Dyne,
0477     Kilopond,
0478     PoundForce,
0479     Poundal,
0480 
0481     // Angle
0482     Degree = 16000,
0483     Radian,
0484     Gradian,
0485     ArcMinute,
0486     ArcSecond,
0487 
0488     // Frequency
0489     Yottahertz = 17000,
0490     Zettahertz,
0491     Exahertz,
0492     Petahertz,
0493     Terahertz,
0494     Gigahertz,
0495     Megahertz,
0496     Kilohertz,
0497     Hectohertz,
0498     Decahertz,
0499     Hertz,
0500     Decihertz,
0501     Centihertz,
0502     Millihertz,
0503     Microhertz,
0504     Nanohertz,
0505     Picohertz,
0506     Femtohertz,
0507     Attohertz,
0508     Zeptohertz,
0509     Yoctohertz,
0510     RPM,
0511 
0512     // Thermal Conductivity
0513     /** @since 5.27 */
0514     WattPerMeterKelvin = 18000,
0515     /** @since 5.27 */
0516     BtuPerFootHourFahrenheit,
0517     /** @since 5.27 */
0518     BtuPerSquareFootHourFahrenheitPerInch,
0519 
0520     // Thermal Flux Density
0521     /** @since 5.27 */
0522     WattPerSquareMeter = 19000,
0523     /** @since 5.27 */
0524     BtuPerHourPerSquareFoot,
0525 
0526     // Thermal Generation per volume
0527     /** @since 5.27 */
0528     WattPerCubicMeter = 20000,
0529     /** @since 5.27 */
0530     BtuPerHourPerCubicFoot,
0531 
0532     // Voltage
0533     /** @since 5.27 */
0534     Yottavolts = 30000,
0535     /** @since 5.27 */
0536     Zettavolts,
0537     /** @since 5.27 */
0538     Exavolts,
0539     /** @since 5.27 */
0540     Petavolts,
0541     /** @since 5.27 */
0542     Teravolts,
0543     /** @since 5.27 */
0544     Gigavolts,
0545     /** @since 5.27 */
0546     Megavolts,
0547     /** @since 5.27 */
0548     Kilovolts,
0549     /** @since 5.27 */
0550     Hectovolts,
0551     /** @since 5.27 */
0552     Decavolts,
0553     /** @since 5.27 */
0554     Volts,
0555     /** @since 5.27 */
0556     Decivolts,
0557     /** @since 5.27 */
0558     Centivolts,
0559     /** @since 5.27 */
0560     Millivolts,
0561     /** @since 5.27 */
0562     Microvolts,
0563     /** @since 5.27 */
0564     Nanovolts,
0565     /** @since 5.27 */
0566     Picovolts,
0567     /** @since 5.27 */
0568     Femtovolts,
0569     /** @since 5.27 */
0570     Attovolts,
0571     /** @since 5.27 */
0572     Zeptovolts,
0573     /** @since 5.27 */
0574     Yoctovolts,
0575     /** @since 5.27 */
0576     Statvolts,
0577 
0578     // Electrical Current
0579     /** @since 5.27 */
0580     Yottaampere = 31000,
0581     /** @since 5.27 */
0582     Zettaampere,
0583     /** @since 5.27 */
0584     Exaampere,
0585     /** @since 5.27 */
0586     Petaampere,
0587     /** @since 5.27 */
0588     Teraampere,
0589     /** @since 5.27 */
0590     Gigaampere,
0591     /** @since 5.27 */
0592     Megaampere,
0593     /** @since 5.27 */
0594     Kiloampere,
0595     /** @since 5.27 */
0596     Hectoampere,
0597     /** @since 5.27 */
0598     Decaampere,
0599     /** @since 5.27 */
0600     Ampere,
0601     /** @since 5.27 */
0602     Deciampere,
0603     /** @since 5.27 */
0604     Centiampere,
0605     /** @since 5.27 */
0606     Milliampere,
0607     /** @since 5.27 */
0608     Microampere,
0609     /** @since 5.27 */
0610     Nanoampere,
0611     /** @since 5.27 */
0612     Picoampere,
0613     /** @since 5.27 */
0614     Femtoampere,
0615     /** @since 5.27 */
0616     Attoampere,
0617     /** @since 5.27 */
0618     Zeptoampere,
0619     /** @since 5.27 */
0620     Yoctoampere,
0621 
0622     // Electrical Resistance
0623     /** @since 5.27 */
0624     Yottaohms = 32000,
0625     /** @since 5.27 */
0626     Zettaohms,
0627     /** @since 5.27 */
0628     Exaohms,
0629     /** @since 5.27 */
0630     Petaohms,
0631     /** @since 5.27 */
0632     Teraohms,
0633     /** @since 5.27 */
0634     Gigaohms,
0635     /** @since 5.27 */
0636     Megaohms,
0637     /** @since 5.27 */
0638     Kiloohms,
0639     /** @since 5.27 */
0640     Hectoohms,
0641     /** @since 5.27 */
0642     Decaohms,
0643     /** @since 5.27 */
0644     Ohms,
0645     /** @since 5.27 */
0646     Deciohms,
0647     /** @since 5.27 */
0648     Centiohms,
0649     /** @since 5.27 */
0650     Milliohms,
0651     /** @since 5.27 */
0652     Microohms,
0653     /** @since 5.27 */
0654     Nanoohms,
0655     /** @since 5.27 */
0656     Picoohms,
0657     /** @since 5.27 */
0658     Femtoohms,
0659     /** @since 5.27 */
0660     Attoohms,
0661     /** @since 5.27 */
0662     Zeptoohms,
0663     /** @since 5.27 */
0664     Yoctoohms,
0665 
0666     /** @since 5.53 */
0667     Darcy = 33000,
0668     /** @since 5.53 */
0669     MiliDarcy,
0670     /** @since 5.53 */
0671     PermeabilitySquareMicrometer,
0672 
0673     /** @since 5.61 */
0674     Yobibyte = 34000,
0675     /** @since 5.61 */
0676     Yobibit,
0677     /** @since 5.61 */
0678     Yottabyte,
0679     /** @since 5.61 */
0680     Yottabit,
0681     /** @since 5.61 */
0682     Zebibyte,
0683     /** @since 5.61 */
0684     Zebibit,
0685     /** @since 5.61 */
0686     Zettabyte,
0687     /** @since 5.61 */
0688     Zettabit,
0689     /** @since 5.61 */
0690     Exbibyte,
0691     /** @since 5.61 */
0692     Exbibit,
0693     /** @since 5.61 */
0694     Exabyte,
0695     /** @since 5.61 */
0696     Exabit,
0697     /** @since 5.61 */
0698     Pebibyte,
0699     /** @since 5.61 */
0700     Pebibit,
0701     /** @since 5.61 */
0702     Petabyte,
0703     /** @since 5.61 */
0704     Petabit,
0705     /** @since 5.61 */
0706     Tebibyte,
0707     /** @since 5.61 */
0708     Tebibit,
0709     /** @since 5.61 */
0710     Terabyte,
0711     /** @since 5.61 */
0712     Terabit,
0713     /** @since 5.61 */
0714     Gibibyte,
0715     /** @since 5.61 */
0716     Gibibit,
0717     /** @since 5.61 */
0718     Gigabyte,
0719     /** @since 5.61 */
0720     Gigabit,
0721     /** @since 5.61 */
0722     Mebibyte,
0723     /** @since 5.61 */
0724     Mebibit,
0725     /** @since 5.61 */
0726     Megabyte,
0727     /** @since 5.61 */
0728     Megabit,
0729     /** @since 5.61 */
0730     Kibibyte,
0731     /** @since 5.61 */
0732     Kibibit,
0733     /** @since 5.61 */
0734     Kilobyte,
0735     /** @since 5.61 */
0736     Kilobit,
0737     /** @since 5.61 */
0738     Byte,
0739     /** @since 5.61 */
0740     Bit
0741 };
0742 
0743 class UnitCategory;
0744 class UnitPrivate;
0745 
0746 /**
0747  * @short Class to define a unit of measurement
0748  *
0749  * This is a class to define a unit of measurement.
0750  *
0751  * @see Converter, UnitCategory, Value
0752  *
0753  * @author Petri Damstén <damu@iki.fi>
0754  * @author John Layt <jlayt@kde.org>
0755  */
0756 
0757 class KUNITCONVERSION_EXPORT Unit
0758 {
0759 public:
0760     /**
0761      * Null constructor
0762      **/
0763     Unit();
0764 
0765     /**
0766      * Copy constructor, copy @p other to this.
0767      **/
0768     Unit(const Unit &other);
0769 
0770     // TODO KF6: remove virtual
0771     virtual ~Unit();
0772 
0773     /**
0774      * Assignment operator, assign @p other to this.
0775      **/
0776     Unit &operator=(const Unit &other);
0777 
0778     // TODO KF6: de-inline
0779 #ifdef Q_COMPILER_RVALUE_REFS
0780     /**
0781      * Move-assigns @p other to this Unit instance, transferring the
0782      * ownership of the managed pointer to this instance.
0783      **/
0784     Unit &operator=(Unit &&other)
0785     {
0786         swap(other);
0787         return *this;
0788     }
0789 #endif
0790 
0791     // TODO KF6: remove
0792     /**
0793      * Swaps this Unit with @p other. This function is very fast and never fails.
0794      **/
0795     void swap(Unit &other)
0796     {
0797         d.swap(other.d);
0798     }
0799 
0800     /**
0801      * @return @c true if this Unit is equal to the @p other Unit.
0802      **/
0803     bool operator==(const Unit &other) const;
0804 
0805     /**
0806      * @return @c true if this Unit is not equal to the @p other Unit.
0807      **/
0808     bool operator!=(const Unit &other) const;
0809 
0810     /**
0811      * @return returns true if this Unit is null
0812      **/
0813     bool isNull() const;
0814 
0815     /**
0816      * @return if unit is valid.
0817      **/
0818     bool isValid() const;
0819 
0820     /**
0821      * @return unit id.
0822      **/
0823     UnitId id() const;
0824 
0825     /**
0826      * @return category id.
0827      **/
0828     CategoryId categoryId() const;
0829 
0830     /**
0831      * @return unit category.
0832      **/
0833     UnitCategory category() const;
0834 
0835     /**
0836      * @return translated name for unit.
0837      **/
0838     QString description() const;
0839 
0840     /**
0841      * @return symbol for the unit.
0842      **/
0843     QString symbol() const;
0844 
0845     /**
0846      * @param value number value
0847      * @param fieldWidth width of the formatted field, padded by spaces.
0848      *                   Positive value aligns right, negative aligns left
0849      * @param format type of floating point formatting, like in QString::arg
0850      * @param precision number of digits after the decimal separator
0851      * @param fillChar the character used to fill up the empty places when
0852      *                 field width is greater than argument width
0853      * @return value + unit string
0854      **/
0855     QString toString(qreal value, int fieldWidth = 0, char format = 'g', int precision = -1, const QChar &fillChar = QLatin1Char(' ')) const;
0856 
0857     /**
0858      * @param value number value
0859      * @param fieldWidth width of the formatted field, padded by spaces.
0860      *                   Positive value aligns right, negative aligns left
0861      * @param format type of floating point formatting, like in QString::arg
0862      * @param precision number of digits after the decimal separator
0863      * @param fillChar the character used to fill up the empty places when
0864      *                 field width is greater than argument width
0865      * @return value + unit string
0866      **/
0867     QString toSymbolString(qreal value, int fieldWidth = 0, char format = 'g', int precision = -1, const QChar &fillChar = QLatin1Char(' ')) const;
0868 
0869 protected:
0870     qreal toDefault(qreal value) const;
0871     qreal fromDefault(qreal value) const;
0872 
0873 private:
0874     friend class UnitPrivate;
0875     friend class UnitCategory;
0876     friend class UnitCategoryPrivate;
0877     friend class CurrencyCategoryPrivate;
0878 
0879     KUNITCONVERSION_NO_EXPORT explicit Unit(UnitPrivate *dd);
0880 
0881     KUNITCONVERSION_NO_EXPORT void setUnitMultiplier(qreal multiplier);
0882 
0883     QExplicitlySharedDataPointer<UnitPrivate> d;
0884 };
0885 
0886 } // KUnitConversion namespace
0887 
0888 #endif