Bug Summary

File:root/firefox-clang/intl/icu/source/i18n/measunit.cpp
Warning:line 2653, column 5
Undefined or garbage value returned to caller

Annotated Source Code

Press '?' to see keyboard shortcuts

clang -cc1 -cc1 -triple x86_64-pc-linux-gnu -O2 -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name measunit.cpp -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=cplusplus -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -analyzer-config-compatibility-mode=true -mrelocation-model pic -pic-level 2 -fhalf-no-semantic-interposition -mframe-pointer=all -relaxed-aliasing -ffp-contract=off -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fdebug-compilation-dir=/root/firefox-clang/obj-x86_64-pc-linux-gnu/config/external/icu/i18n -fcoverage-compilation-dir=/root/firefox-clang/obj-x86_64-pc-linux-gnu/config/external/icu/i18n -resource-dir /usr/lib/llvm-23/lib/clang/23 -include /root/firefox-clang/config/gcc_hidden.h -include /root/firefox-clang/obj-x86_64-pc-linux-gnu/mozilla-config.h -D _GLIBCXX_ASSERTIONS=1 -I /root/firefox-clang/obj-x86_64-pc-linux-gnu/dist/system_wrappers -U _FORTIFY_SOURCE -D _FORTIFY_SOURCE=2 -D DEBUG=1 -D U_I18N_IMPLEMENTATION -D _LIBCPP_DISABLE_DEPRECATION_WARNINGS -D U_USING_ICU_NAMESPACE=0 -D U_NO_DEFAULT_INCLUDE_UTF_HEADERS=1 -D U_HIDE_OBSOLETE_UTF_OLD_H=1 -D UCONFIG_NO_LEGACY_CONVERSION -D UCONFIG_NO_TRANSLITERATION -D UCONFIG_NO_REGULAR_EXPRESSIONS -D UCONFIG_NO_BREAK_ITERATION -D UCONFIG_NO_IDNA -D UCONFIG_NO_MF2 -D UCONFIG_NO_NORMALIZATION -D UCONFIG_NO_COLLATION -D U_CHARSET_IS_UTF8 -D UNISTR_FROM_CHAR_EXPLICIT=explicit -D UNISTR_FROM_STRING_EXPLICIT=explicit -D U_ENABLE_DYLOAD=0 -D U_DEBUG=1 -I /root/firefox-clang/config/external/icu/i18n -I /root/firefox-clang/obj-x86_64-pc-linux-gnu/config/external/icu/i18n -I /root/firefox-clang/intl/icu/source/common -I /root/firefox-clang/mfbt/double-conversion -I /root/firefox-clang/obj-x86_64-pc-linux-gnu/dist/include -I /root/firefox-clang/obj-x86_64-pc-linux-gnu/dist/include/nspr -I /root/firefox-clang/obj-x86_64-pc-linux-gnu/dist/include/nss -D MOZILLA_CLIENT -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/16/../../../../include/c++/16 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/16/../../../../include/x86_64-linux-gnu/c++/16 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/16/../../../../include/c++/16/backward -internal-isystem /usr/lib/llvm-23/lib/clang/23/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/16/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -Wno-error=pessimizing-move -Wno-error=large-by-value-copy=128 -Wno-error=implicit-int-float-conversion -Wno-error=thread-safety-analysis -Wno-error=tautological-type-limit-compare -Wno-invalid-offsetof -Wno-range-loop-analysis -Wno-deprecated-anon-enum-enum-conversion -Wno-deprecated-enum-enum-conversion -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wno-error=atomic-alignment -Wno-error=deprecated-builtins -Wno-psabi -Wno-error=builtin-macro-redefined -Wno-vla-cxx-extension -Wno-unknown-warning-option -Wno-character-conversion -Wno-comma -Wno-implicit-const-int-float-conversion -Wno-macro-redefined -Wno-microsoft-include -Wno-tautological-unsigned-enum-zero-compare -Wno-unreachable-code-loop-increment -Wno-unreachable-code-return -std=gnu++20 -fdeprecated-macro -ferror-limit 19 -fstrict-flex-arrays=1 -stack-protector 2 -fstack-clash-protection -ftrivial-auto-var-init=pattern -fgnuc-version=4.2.1 -fno-implicit-modules -fskip-odr-check-in-gmf -fno-sized-deallocation -fno-aligned-allocation -fdiagnostics-absolute-paths -vectorize-loops -vectorize-slp -analyzer-checker optin.performance.Padding -analyzer-output=html -analyzer-config stable-report-filename=true -mllvm -dwarf-linkage-names=Abstract -faddrsig -fdwarf2-cfi-asm -o /tmp/scan-build-2026-09-01-224014-2642839-1 -x c++ /root/firefox-clang/intl/icu/source/i18n/measunit.cpp
1// © 2016 and later: Unicode, Inc. and others.
2// License & terms of use: http://www.unicode.org/copyright.html
3/*
4**********************************************************************
5* Copyright (c) 2004-2016, International Business Machines
6* Corporation and others. All Rights Reserved.
7**********************************************************************
8* Author: Alan Liu
9* Created: April 26, 2004
10* Since: ICU 3.0
11**********************************************************************
12*/
13#include "utypeinfo.h" // for 'typeid' to work
14
15#include "unicode/measunit.h"
16
17#if !UCONFIG_NO_FORMATTING0
18
19#include "unicode/uenum.h"
20#include "unicode/errorcode.h"
21#include "ustrenum.h"
22#include "cstring.h"
23#include "uassert.h"
24#include "measunit_impl.h"
25
26U_NAMESPACE_BEGINnamespace icu_78 {
27
28UOBJECT_DEFINE_RTTI_IMPLEMENTATION(MeasureUnit)UClassID MeasureUnit::getStaticClassID() { static char classID
= 0; return (UClassID)&classID; } UClassID MeasureUnit::
getDynamicClassID() const { return MeasureUnit::getStaticClassID
(); }
29
30// All code between the "Start generated code" comment and
31// the "End generated code" comment is auto generated code
32// and must not be edited manually. For instructions on how to correctly
33// update this code, refer to:
34// https://icu.unicode.org/design/formatting/measureformat/updating-measure-unit
35//
36// Start generated code for measunit.cpp
37
38// Maps from Type ID to offset in gSubTypes.
39static const int32_t gOffsets[] = {
40 0,
41 2,
42 8,
43 21,
44 34,
45 38,
46 340,
47 351,
48 370,
49 378,
50 392,
51 396,
52 400,
53 408,
54 439,
55 443,
56 445,
57 462,
58 463,
59 469,
60 481,
61 487,
62 492,
63 494,
64 538
65};
66
67static const int32_t kCurrencyOffset = 5;
68
69// Must be sorted alphabetically.
70static const char * const gTypes[] = {
71 "acceleration",
72 "angle",
73 "area",
74 "concentr",
75 "consumption",
76 "currency",
77 "digital",
78 "duration",
79 "electric",
80 "energy",
81 "force",
82 "frequency",
83 "graphics",
84 "length",
85 "light",
86 "magnetic",
87 "mass",
88 "none",
89 "power",
90 "pressure",
91 "speed",
92 "temperature",
93 "torque",
94 "volume"
95};
96
97// Must be grouped by type and sorted alphabetically within each type.
98static const char * const gSubTypes[] = {
99 "g-force",
100 "meter-per-square-second",
101 "arc-minute",
102 "arc-second",
103 "degree",
104 "radian",
105 "revolution",
106 "steradian",
107 "acre",
108 "bu-jp",
109 "cho",
110 "dunam",
111 "hectare",
112 "se-jp",
113 "square-centimeter",
114 "square-foot",
115 "square-inch",
116 "square-kilometer",
117 "square-meter",
118 "square-mile",
119 "square-yard",
120 "item",
121 "karat",
122 "katal",
123 "milligram-ofglucose-per-deciliter",
124 "millimole-per-liter",
125 "mole",
126 "ofglucose",
127 "part",
128 "part-per-1e6",
129 "part-per-1e9",
130 "percent",
131 "permille",
132 "permyriad",
133 "liter-per-100-kilometer",
134 "liter-per-kilometer",
135 "mile-per-gallon",
136 "mile-per-gallon-imperial",
137 "ADP",
138 "AED",
139 "AFA",
140 "AFN",
141 "ALK",
142 "ALL",
143 "AMD",
144 "ANG",
145 "AOA",
146 "AOK",
147 "AON",
148 "AOR",
149 "ARA",
150 "ARP",
151 "ARS",
152 "ARY",
153 "ATS",
154 "AUD",
155 "AWG",
156 "AYM",
157 "AZM",
158 "AZN",
159 "BAD",
160 "BAM",
161 "BBD",
162 "BDT",
163 "BEC",
164 "BEF",
165 "BEL",
166 "BGJ",
167 "BGK",
168 "BGL",
169 "BGN",
170 "BHD",
171 "BIF",
172 "BMD",
173 "BND",
174 "BOB",
175 "BOP",
176 "BOV",
177 "BRB",
178 "BRC",
179 "BRE",
180 "BRL",
181 "BRN",
182 "BRR",
183 "BSD",
184 "BTN",
185 "BUK",
186 "BWP",
187 "BYB",
188 "BYN",
189 "BYR",
190 "BZD",
191 "CAD",
192 "CDF",
193 "CHC",
194 "CHE",
195 "CHF",
196 "CHW",
197 "CLF",
198 "CLP",
199 "CNY",
200 "COP",
201 "COU",
202 "CRC",
203 "CSD",
204 "CSJ",
205 "CSK",
206 "CUC",
207 "CUP",
208 "CVE",
209 "CYP",
210 "CZK",
211 "DDM",
212 "DEM",
213 "DJF",
214 "DKK",
215 "DOP",
216 "DZD",
217 "ECS",
218 "ECV",
219 "EEK",
220 "EGP",
221 "ERN",
222 "ESA",
223 "ESB",
224 "ESP",
225 "ETB",
226 "EUR",
227 "FIM",
228 "FJD",
229 "FKP",
230 "FRF",
231 "GBP",
232 "GEK",
233 "GEL",
234 "GHC",
235 "GHP",
236 "GHS",
237 "GIP",
238 "GMD",
239 "GNE",
240 "GNF",
241 "GNS",
242 "GQE",
243 "GRD",
244 "GTQ",
245 "GWE",
246 "GWP",
247 "GYD",
248 "HKD",
249 "HNL",
250 "HRD",
251 "HRK",
252 "HTG",
253 "HUF",
254 "IDR",
255 "IEP",
256 "ILP",
257 "ILR",
258 "ILS",
259 "INR",
260 "IQD",
261 "IRR",
262 "ISJ",
263 "ISK",
264 "ITL",
265 "JMD",
266 "JOD",
267 "JPY",
268 "KES",
269 "KGS",
270 "KHR",
271 "KMF",
272 "KPW",
273 "KRW",
274 "KWD",
275 "KYD",
276 "KZT",
277 "LAJ",
278 "LAK",
279 "LBP",
280 "LKR",
281 "LRD",
282 "LSL",
283 "LSM",
284 "LTL",
285 "LTT",
286 "LUC",
287 "LUF",
288 "LUL",
289 "LVL",
290 "LVR",
291 "LYD",
292 "MAD",
293 "MDL",
294 "MGA",
295 "MGF",
296 "MKD",
297 "MLF",
298 "MMK",
299 "MNT",
300 "MOP",
301 "MRO",
302 "MRU",
303 "MTL",
304 "MTP",
305 "MUR",
306 "MVQ",
307 "MVR",
308 "MWK",
309 "MXN",
310 "MXP",
311 "MXV",
312 "MYR",
313 "MZE",
314 "MZM",
315 "MZN",
316 "NAD",
317 "NGN",
318 "NIC",
319 "NIO",
320 "NLG",
321 "NOK",
322 "NPR",
323 "NZD",
324 "OMR",
325 "PAB",
326 "PEH",
327 "PEI",
328 "PEN",
329 "PES",
330 "PGK",
331 "PHP",
332 "PKR",
333 "PLN",
334 "PLZ",
335 "PTE",
336 "PYG",
337 "QAR",
338 "RHD",
339 "ROK",
340 "ROL",
341 "RON",
342 "RSD",
343 "RUB",
344 "RUR",
345 "RWF",
346 "SAR",
347 "SBD",
348 "SCR",
349 "SDD",
350 "SDG",
351 "SDP",
352 "SEK",
353 "SGD",
354 "SHP",
355 "SIT",
356 "SKK",
357 "SLE",
358 "SLL",
359 "SOS",
360 "SRD",
361 "SRG",
362 "SSP",
363 "STD",
364 "STN",
365 "SUR",
366 "SVC",
367 "SYP",
368 "SZL",
369 "THB",
370 "TJR",
371 "TJS",
372 "TMM",
373 "TMT",
374 "TND",
375 "TOP",
376 "TPE",
377 "TRL",
378 "TRY",
379 "TTD",
380 "TWD",
381 "TZS",
382 "UAH",
383 "UAK",
384 "UGS",
385 "UGW",
386 "UGX",
387 "USD",
388 "USN",
389 "USS",
390 "UYI",
391 "UYN",
392 "UYP",
393 "UYU",
394 "UYW",
395 "UZS",
396 "VEB",
397 "VED",
398 "VEF",
399 "VES",
400 "VNC",
401 "VND",
402 "VUV",
403 "WST",
404 "XAF",
405 "XAG",
406 "XAU",
407 "XBA",
408 "XBB",
409 "XBC",
410 "XBD",
411 "XCD",
412 "XDR",
413 "XEU",
414 "XOF",
415 "XPD",
416 "XPF",
417 "XPT",
418 "XSU",
419 "XTS",
420 "XUA",
421 "XXX",
422 "YDD",
423 "YER",
424 "YUD",
425 "YUM",
426 "YUN",
427 "ZAL",
428 "ZAR",
429 "ZMK",
430 "ZMW",
431 "ZRN",
432 "ZRZ",
433 "ZWC",
434 "ZWD",
435 "ZWG",
436 "ZWL",
437 "ZWN",
438 "ZWR",
439 "bit",
440 "byte",
441 "gigabit",
442 "gigabyte",
443 "kilobit",
444 "kilobyte",
445 "megabit",
446 "megabyte",
447 "petabyte",
448 "terabit",
449 "terabyte",
450 "century",
451 "day",
452 "day-person",
453 "decade",
454 "fortnight",
455 "hour",
456 "microsecond",
457 "millisecond",
458 "minute",
459 "month",
460 "month-person",
461 "nanosecond",
462 "night",
463 "quarter",
464 "second",
465 "week",
466 "week-person",
467 "year",
468 "year-person",
469 "ampere",
470 "coulomb",
471 "farad",
472 "henry",
473 "milliampere",
474 "ohm",
475 "siemens",
476 "volt",
477 "becquerel",
478 "british-thermal-unit",
479 "british-thermal-unit-it",
480 "calorie",
481 "calorie-it",
482 "electronvolt",
483 "foodcalorie",
484 "gray",
485 "joule",
486 "kilocalorie",
487 "kilojoule",
488 "kilowatt-hour",
489 "sievert",
490 "therm-us",
491 "kilogram-force",
492 "kilowatt-hour-per-100-kilometer",
493 "newton",
494 "pound-force",
495 "gigahertz",
496 "hertz",
497 "kilohertz",
498 "megahertz",
499 "dot",
500 "dot-per-centimeter",
501 "dot-per-inch",
502 "em",
503 "megapixel",
504 "pixel",
505 "pixel-per-centimeter",
506 "pixel-per-inch",
507 "astronomical-unit",
508 "centimeter",
509 "chain",
510 "decimeter",
511 "earth-radius",
512 "fathom",
513 "foot",
514 "furlong",
515 "inch",
516 "jo-jp",
517 "ken",
518 "kilometer",
519 "light-year",
520 "meter",
521 "micrometer",
522 "mile",
523 "mile-scandinavian",
524 "millimeter",
525 "nanometer",
526 "nautical-mile",
527 "parsec",
528 "picometer",
529 "point",
530 "ri-jp",
531 "rin",
532 "rod",
533 "shaku-cloth",
534 "shaku-length",
535 "solar-radius",
536 "sun",
537 "yard",
538 "candela",
539 "lumen",
540 "lux",
541 "solar-luminosity",
542 "tesla",
543 "weber",
544 "carat",
545 "dalton",
546 "earth-mass",
547 "fun",
548 "grain",
549 "gram",
550 "kilogram",
551 "microgram",
552 "milligram",
553 "ounce",
554 "ounce-troy",
555 "pound",
556 "slug",
557 "solar-mass",
558 "stone",
559 "ton",
560 "tonne",
561 "",
562 "gigawatt",
563 "horsepower",
564 "kilowatt",
565 "megawatt",
566 "milliwatt",
567 "watt",
568 "atmosphere",
569 "bar",
570 "gasoline-energy-density",
571 "hectopascal",
572 "inch-ofhg",
573 "kilopascal",
574 "megapascal",
575 "millibar",
576 "millimeter-ofhg",
577 "ofhg",
578 "pascal",
579 "pound-force-per-square-inch",
580 "beaufort",
581 "kilometer-per-hour",
582 "knot",
583 "light-speed",
584 "meter-per-second",
585 "mile-per-hour",
586 "celsius",
587 "fahrenheit",
588 "generic",
589 "kelvin",
590 "rankine",
591 "newton-meter",
592 "pound-force-foot",
593 "acre-foot",
594 "barrel",
595 "bushel",
596 "centiliter",
597 "cubic-centimeter",
598 "cubic-foot",
599 "cubic-inch",
600 "cubic-kilometer",
601 "cubic-meter",
602 "cubic-mile",
603 "cubic-yard",
604 "cup",
605 "cup-imperial",
606 "cup-jp",
607 "cup-metric",
608 "deciliter",
609 "dessert-spoon",
610 "dessert-spoon-imperial",
611 "dram",
612 "drop",
613 "fluid-ounce",
614 "fluid-ounce-imperial",
615 "fluid-ounce-metric",
616 "gallon",
617 "gallon-imperial",
618 "hectoliter",
619 "jigger",
620 "koku",
621 "kosaji",
622 "liter",
623 "megaliter",
624 "milliliter",
625 "osaji",
626 "pinch",
627 "pint",
628 "pint-imperial",
629 "pint-metric",
630 "quart",
631 "quart-imperial",
632 "sai",
633 "shaku",
634 "tablespoon",
635 "teaspoon",
636 "to-jp"
637};
638
639// Shortcuts to the base unit in order to make the default constructor fast
640static const int32_t kBaseTypeIdx = 17;
641static const int32_t kBaseSubTypeIdx = 0;
642
643MeasureUnit *MeasureUnit::createGForce(UErrorCode &status) {
644 return MeasureUnit::create(0, 0, status);
645}
646
647MeasureUnit MeasureUnit::getGForce() {
648 return MeasureUnit(0, 0);
649}
650
651MeasureUnit *MeasureUnit::createMeterPerSecondSquared(UErrorCode &status) {
652 return MeasureUnit::create(0, 1, status);
653}
654
655MeasureUnit MeasureUnit::getMeterPerSecondSquared() {
656 return MeasureUnit(0, 1);
657}
658
659MeasureUnit *MeasureUnit::createArcMinute(UErrorCode &status) {
660 return MeasureUnit::create(1, 0, status);
661}
662
663MeasureUnit MeasureUnit::getArcMinute() {
664 return MeasureUnit(1, 0);
665}
666
667MeasureUnit *MeasureUnit::createArcSecond(UErrorCode &status) {
668 return MeasureUnit::create(1, 1, status);
669}
670
671MeasureUnit MeasureUnit::getArcSecond() {
672 return MeasureUnit(1, 1);
673}
674
675MeasureUnit *MeasureUnit::createDegree(UErrorCode &status) {
676 return MeasureUnit::create(1, 2, status);
677}
678
679MeasureUnit MeasureUnit::getDegree() {
680 return MeasureUnit(1, 2);
681}
682
683MeasureUnit *MeasureUnit::createRadian(UErrorCode &status) {
684 return MeasureUnit::create(1, 3, status);
685}
686
687MeasureUnit MeasureUnit::getRadian() {
688 return MeasureUnit(1, 3);
689}
690
691MeasureUnit *MeasureUnit::createRevolutionAngle(UErrorCode &status) {
692 return MeasureUnit::create(1, 4, status);
693}
694
695MeasureUnit MeasureUnit::getRevolutionAngle() {
696 return MeasureUnit(1, 4);
697}
698
699MeasureUnit *MeasureUnit::createSteradian(UErrorCode &status) {
700 return MeasureUnit::create(1, 5, status);
701}
702
703MeasureUnit MeasureUnit::getSteradian() {
704 return MeasureUnit(1, 5);
705}
706
707MeasureUnit *MeasureUnit::createAcre(UErrorCode &status) {
708 return MeasureUnit::create(2, 0, status);
709}
710
711MeasureUnit MeasureUnit::getAcre() {
712 return MeasureUnit(2, 0);
713}
714
715MeasureUnit *MeasureUnit::createBuJp(UErrorCode &status) {
716 return MeasureUnit::create(2, 1, status);
717}
718
719MeasureUnit MeasureUnit::getBuJp() {
720 return MeasureUnit(2, 1);
721}
722
723MeasureUnit *MeasureUnit::createCho(UErrorCode &status) {
724 return MeasureUnit::create(2, 2, status);
725}
726
727MeasureUnit MeasureUnit::getCho() {
728 return MeasureUnit(2, 2);
729}
730
731MeasureUnit *MeasureUnit::createDunam(UErrorCode &status) {
732 return MeasureUnit::create(2, 3, status);
733}
734
735MeasureUnit MeasureUnit::getDunam() {
736 return MeasureUnit(2, 3);
737}
738
739MeasureUnit *MeasureUnit::createHectare(UErrorCode &status) {
740 return MeasureUnit::create(2, 4, status);
741}
742
743MeasureUnit MeasureUnit::getHectare() {
744 return MeasureUnit(2, 4);
745}
746
747MeasureUnit *MeasureUnit::createSeJp(UErrorCode &status) {
748 return MeasureUnit::create(2, 5, status);
749}
750
751MeasureUnit MeasureUnit::getSeJp() {
752 return MeasureUnit(2, 5);
753}
754
755MeasureUnit *MeasureUnit::createSquareCentimeter(UErrorCode &status) {
756 return MeasureUnit::create(2, 6, status);
757}
758
759MeasureUnit MeasureUnit::getSquareCentimeter() {
760 return MeasureUnit(2, 6);
761}
762
763MeasureUnit *MeasureUnit::createSquareFoot(UErrorCode &status) {
764 return MeasureUnit::create(2, 7, status);
765}
766
767MeasureUnit MeasureUnit::getSquareFoot() {
768 return MeasureUnit(2, 7);
769}
770
771MeasureUnit *MeasureUnit::createSquareInch(UErrorCode &status) {
772 return MeasureUnit::create(2, 8, status);
773}
774
775MeasureUnit MeasureUnit::getSquareInch() {
776 return MeasureUnit(2, 8);
777}
778
779MeasureUnit *MeasureUnit::createSquareKilometer(UErrorCode &status) {
780 return MeasureUnit::create(2, 9, status);
781}
782
783MeasureUnit MeasureUnit::getSquareKilometer() {
784 return MeasureUnit(2, 9);
785}
786
787MeasureUnit *MeasureUnit::createSquareMeter(UErrorCode &status) {
788 return MeasureUnit::create(2, 10, status);
789}
790
791MeasureUnit MeasureUnit::getSquareMeter() {
792 return MeasureUnit(2, 10);
793}
794
795MeasureUnit *MeasureUnit::createSquareMile(UErrorCode &status) {
796 return MeasureUnit::create(2, 11, status);
797}
798
799MeasureUnit MeasureUnit::getSquareMile() {
800 return MeasureUnit(2, 11);
801}
802
803MeasureUnit *MeasureUnit::createSquareYard(UErrorCode &status) {
804 return MeasureUnit::create(2, 12, status);
805}
806
807MeasureUnit MeasureUnit::getSquareYard() {
808 return MeasureUnit(2, 12);
809}
810
811MeasureUnit *MeasureUnit::createItem(UErrorCode &status) {
812 return MeasureUnit::create(3, 0, status);
813}
814
815MeasureUnit MeasureUnit::getItem() {
816 return MeasureUnit(3, 0);
817}
818
819MeasureUnit *MeasureUnit::createKarat(UErrorCode &status) {
820 return MeasureUnit::create(3, 1, status);
821}
822
823MeasureUnit MeasureUnit::getKarat() {
824 return MeasureUnit(3, 1);
825}
826
827MeasureUnit *MeasureUnit::createKatal(UErrorCode &status) {
828 return MeasureUnit::create(3, 2, status);
829}
830
831MeasureUnit MeasureUnit::getKatal() {
832 return MeasureUnit(3, 2);
833}
834
835MeasureUnit *MeasureUnit::createMilligramOfglucosePerDeciliter(UErrorCode &status) {
836 return MeasureUnit::create(3, 3, status);
837}
838
839MeasureUnit MeasureUnit::getMilligramOfglucosePerDeciliter() {
840 return MeasureUnit(3, 3);
841}
842
843MeasureUnit *MeasureUnit::createMilligramPerDeciliter(UErrorCode &status) {
844 return MeasureUnit::create(3, 3, status);
845}
846
847MeasureUnit MeasureUnit::getMilligramPerDeciliter() {
848 return MeasureUnit(3, 3);
849}
850
851MeasureUnit *MeasureUnit::createMillimolePerLiter(UErrorCode &status) {
852 return MeasureUnit::create(3, 4, status);
853}
854
855MeasureUnit MeasureUnit::getMillimolePerLiter() {
856 return MeasureUnit(3, 4);
857}
858
859MeasureUnit *MeasureUnit::createMole(UErrorCode &status) {
860 return MeasureUnit::create(3, 5, status);
861}
862
863MeasureUnit MeasureUnit::getMole() {
864 return MeasureUnit(3, 5);
865}
866
867MeasureUnit *MeasureUnit::createOfglucose(UErrorCode &status) {
868 return MeasureUnit::create(3, 6, status);
869}
870
871MeasureUnit MeasureUnit::getOfglucose() {
872 return MeasureUnit(3, 6);
873}
874
875MeasureUnit *MeasureUnit::createPart(UErrorCode &status) {
876 return MeasureUnit::create(3, 7, status);
877}
878
879MeasureUnit MeasureUnit::getPart() {
880 return MeasureUnit(3, 7);
881}
882
883MeasureUnit *MeasureUnit::createPartPer1E6(UErrorCode &status) {
884 return MeasureUnit::create(3, 8, status);
885}
886
887MeasureUnit MeasureUnit::getPartPer1E6() {
888 return MeasureUnit(3, 8);
889}
890
891MeasureUnit *MeasureUnit::createPartPerMillion(UErrorCode &status) {
892 return MeasureUnit::create(3, 8, status);
893}
894
895MeasureUnit MeasureUnit::getPartPerMillion() {
896 return MeasureUnit(3, 8);
897}
898
899MeasureUnit *MeasureUnit::createPartPer1E9(UErrorCode &status) {
900 return MeasureUnit::create(3, 9, status);
901}
902
903MeasureUnit MeasureUnit::getPartPer1E9() {
904 return MeasureUnit(3, 9);
905}
906
907MeasureUnit *MeasureUnit::createPercent(UErrorCode &status) {
908 return MeasureUnit::create(3, 10, status);
909}
910
911MeasureUnit MeasureUnit::getPercent() {
912 return MeasureUnit(3, 10);
913}
914
915MeasureUnit *MeasureUnit::createPermille(UErrorCode &status) {
916 return MeasureUnit::create(3, 11, status);
917}
918
919MeasureUnit MeasureUnit::getPermille() {
920 return MeasureUnit(3, 11);
921}
922
923MeasureUnit *MeasureUnit::createPermyriad(UErrorCode &status) {
924 return MeasureUnit::create(3, 12, status);
925}
926
927MeasureUnit MeasureUnit::getPermyriad() {
928 return MeasureUnit(3, 12);
929}
930
931MeasureUnit *MeasureUnit::createLiterPer100Kilometers(UErrorCode &status) {
932 return MeasureUnit::create(4, 0, status);
933}
934
935MeasureUnit MeasureUnit::getLiterPer100Kilometers() {
936 return MeasureUnit(4, 0);
937}
938
939MeasureUnit *MeasureUnit::createLiterPerKilometer(UErrorCode &status) {
940 return MeasureUnit::create(4, 1, status);
941}
942
943MeasureUnit MeasureUnit::getLiterPerKilometer() {
944 return MeasureUnit(4, 1);
945}
946
947MeasureUnit *MeasureUnit::createMilePerGallon(UErrorCode &status) {
948 return MeasureUnit::create(4, 2, status);
949}
950
951MeasureUnit MeasureUnit::getMilePerGallon() {
952 return MeasureUnit(4, 2);
953}
954
955MeasureUnit *MeasureUnit::createMilePerGallonImperial(UErrorCode &status) {
956 return MeasureUnit::create(4, 3, status);
957}
958
959MeasureUnit MeasureUnit::getMilePerGallonImperial() {
960 return MeasureUnit(4, 3);
961}
962
963MeasureUnit *MeasureUnit::createBit(UErrorCode &status) {
964 return MeasureUnit::create(6, 0, status);
965}
966
967MeasureUnit MeasureUnit::getBit() {
968 return MeasureUnit(6, 0);
969}
970
971MeasureUnit *MeasureUnit::createByte(UErrorCode &status) {
972 return MeasureUnit::create(6, 1, status);
973}
974
975MeasureUnit MeasureUnit::getByte() {
976 return MeasureUnit(6, 1);
977}
978
979MeasureUnit *MeasureUnit::createGigabit(UErrorCode &status) {
980 return MeasureUnit::create(6, 2, status);
981}
982
983MeasureUnit MeasureUnit::getGigabit() {
984 return MeasureUnit(6, 2);
985}
986
987MeasureUnit *MeasureUnit::createGigabyte(UErrorCode &status) {
988 return MeasureUnit::create(6, 3, status);
989}
990
991MeasureUnit MeasureUnit::getGigabyte() {
992 return MeasureUnit(6, 3);
993}
994
995MeasureUnit *MeasureUnit::createKilobit(UErrorCode &status) {
996 return MeasureUnit::create(6, 4, status);
997}
998
999MeasureUnit MeasureUnit::getKilobit() {
1000 return MeasureUnit(6, 4);
1001}
1002
1003MeasureUnit *MeasureUnit::createKilobyte(UErrorCode &status) {
1004 return MeasureUnit::create(6, 5, status);
1005}
1006
1007MeasureUnit MeasureUnit::getKilobyte() {
1008 return MeasureUnit(6, 5);
1009}
1010
1011MeasureUnit *MeasureUnit::createMegabit(UErrorCode &status) {
1012 return MeasureUnit::create(6, 6, status);
1013}
1014
1015MeasureUnit MeasureUnit::getMegabit() {
1016 return MeasureUnit(6, 6);
1017}
1018
1019MeasureUnit *MeasureUnit::createMegabyte(UErrorCode &status) {
1020 return MeasureUnit::create(6, 7, status);
1021}
1022
1023MeasureUnit MeasureUnit::getMegabyte() {
1024 return MeasureUnit(6, 7);
1025}
1026
1027MeasureUnit *MeasureUnit::createPetabyte(UErrorCode &status) {
1028 return MeasureUnit::create(6, 8, status);
1029}
1030
1031MeasureUnit MeasureUnit::getPetabyte() {
1032 return MeasureUnit(6, 8);
1033}
1034
1035MeasureUnit *MeasureUnit::createTerabit(UErrorCode &status) {
1036 return MeasureUnit::create(6, 9, status);
1037}
1038
1039MeasureUnit MeasureUnit::getTerabit() {
1040 return MeasureUnit(6, 9);
1041}
1042
1043MeasureUnit *MeasureUnit::createTerabyte(UErrorCode &status) {
1044 return MeasureUnit::create(6, 10, status);
1045}
1046
1047MeasureUnit MeasureUnit::getTerabyte() {
1048 return MeasureUnit(6, 10);
1049}
1050
1051MeasureUnit *MeasureUnit::createCentury(UErrorCode &status) {
1052 return MeasureUnit::create(7, 0, status);
1053}
1054
1055MeasureUnit MeasureUnit::getCentury() {
1056 return MeasureUnit(7, 0);
1057}
1058
1059MeasureUnit *MeasureUnit::createDay(UErrorCode &status) {
1060 return MeasureUnit::create(7, 1, status);
1061}
1062
1063MeasureUnit MeasureUnit::getDay() {
1064 return MeasureUnit(7, 1);
1065}
1066
1067MeasureUnit *MeasureUnit::createDayPerson(UErrorCode &status) {
1068 return MeasureUnit::create(7, 2, status);
1069}
1070
1071MeasureUnit MeasureUnit::getDayPerson() {
1072 return MeasureUnit(7, 2);
1073}
1074
1075MeasureUnit *MeasureUnit::createDecade(UErrorCode &status) {
1076 return MeasureUnit::create(7, 3, status);
1077}
1078
1079MeasureUnit MeasureUnit::getDecade() {
1080 return MeasureUnit(7, 3);
1081}
1082
1083MeasureUnit *MeasureUnit::createFortnight(UErrorCode &status) {
1084 return MeasureUnit::create(7, 4, status);
1085}
1086
1087MeasureUnit MeasureUnit::getFortnight() {
1088 return MeasureUnit(7, 4);
1089}
1090
1091MeasureUnit *MeasureUnit::createHour(UErrorCode &status) {
1092 return MeasureUnit::create(7, 5, status);
1093}
1094
1095MeasureUnit MeasureUnit::getHour() {
1096 return MeasureUnit(7, 5);
1097}
1098
1099MeasureUnit *MeasureUnit::createMicrosecond(UErrorCode &status) {
1100 return MeasureUnit::create(7, 6, status);
1101}
1102
1103MeasureUnit MeasureUnit::getMicrosecond() {
1104 return MeasureUnit(7, 6);
1105}
1106
1107MeasureUnit *MeasureUnit::createMillisecond(UErrorCode &status) {
1108 return MeasureUnit::create(7, 7, status);
1109}
1110
1111MeasureUnit MeasureUnit::getMillisecond() {
1112 return MeasureUnit(7, 7);
1113}
1114
1115MeasureUnit *MeasureUnit::createMinute(UErrorCode &status) {
1116 return MeasureUnit::create(7, 8, status);
1117}
1118
1119MeasureUnit MeasureUnit::getMinute() {
1120 return MeasureUnit(7, 8);
1121}
1122
1123MeasureUnit *MeasureUnit::createMonth(UErrorCode &status) {
1124 return MeasureUnit::create(7, 9, status);
1125}
1126
1127MeasureUnit MeasureUnit::getMonth() {
1128 return MeasureUnit(7, 9);
1129}
1130
1131MeasureUnit *MeasureUnit::createMonthPerson(UErrorCode &status) {
1132 return MeasureUnit::create(7, 10, status);
1133}
1134
1135MeasureUnit MeasureUnit::getMonthPerson() {
1136 return MeasureUnit(7, 10);
1137}
1138
1139MeasureUnit *MeasureUnit::createNanosecond(UErrorCode &status) {
1140 return MeasureUnit::create(7, 11, status);
1141}
1142
1143MeasureUnit MeasureUnit::getNanosecond() {
1144 return MeasureUnit(7, 11);
1145}
1146
1147MeasureUnit *MeasureUnit::createNight(UErrorCode &status) {
1148 return MeasureUnit::create(7, 12, status);
1149}
1150
1151MeasureUnit MeasureUnit::getNight() {
1152 return MeasureUnit(7, 12);
1153}
1154
1155MeasureUnit *MeasureUnit::createQuarter(UErrorCode &status) {
1156 return MeasureUnit::create(7, 13, status);
1157}
1158
1159MeasureUnit MeasureUnit::getQuarter() {
1160 return MeasureUnit(7, 13);
1161}
1162
1163MeasureUnit *MeasureUnit::createSecond(UErrorCode &status) {
1164 return MeasureUnit::create(7, 14, status);
1165}
1166
1167MeasureUnit MeasureUnit::getSecond() {
1168 return MeasureUnit(7, 14);
1169}
1170
1171MeasureUnit *MeasureUnit::createWeek(UErrorCode &status) {
1172 return MeasureUnit::create(7, 15, status);
1173}
1174
1175MeasureUnit MeasureUnit::getWeek() {
1176 return MeasureUnit(7, 15);
1177}
1178
1179MeasureUnit *MeasureUnit::createWeekPerson(UErrorCode &status) {
1180 return MeasureUnit::create(7, 16, status);
1181}
1182
1183MeasureUnit MeasureUnit::getWeekPerson() {
1184 return MeasureUnit(7, 16);
1185}
1186
1187MeasureUnit *MeasureUnit::createYear(UErrorCode &status) {
1188 return MeasureUnit::create(7, 17, status);
1189}
1190
1191MeasureUnit MeasureUnit::getYear() {
1192 return MeasureUnit(7, 17);
1193}
1194
1195MeasureUnit *MeasureUnit::createYearPerson(UErrorCode &status) {
1196 return MeasureUnit::create(7, 18, status);
1197}
1198
1199MeasureUnit MeasureUnit::getYearPerson() {
1200 return MeasureUnit(7, 18);
1201}
1202
1203MeasureUnit *MeasureUnit::createAmpere(UErrorCode &status) {
1204 return MeasureUnit::create(8, 0, status);
1205}
1206
1207MeasureUnit MeasureUnit::getAmpere() {
1208 return MeasureUnit(8, 0);
1209}
1210
1211MeasureUnit *MeasureUnit::createCoulomb(UErrorCode &status) {
1212 return MeasureUnit::create(8, 1, status);
1213}
1214
1215MeasureUnit MeasureUnit::getCoulomb() {
1216 return MeasureUnit(8, 1);
1217}
1218
1219MeasureUnit *MeasureUnit::createFarad(UErrorCode &status) {
1220 return MeasureUnit::create(8, 2, status);
1221}
1222
1223MeasureUnit MeasureUnit::getFarad() {
1224 return MeasureUnit(8, 2);
1225}
1226
1227MeasureUnit *MeasureUnit::createHenry(UErrorCode &status) {
1228 return MeasureUnit::create(8, 3, status);
1229}
1230
1231MeasureUnit MeasureUnit::getHenry() {
1232 return MeasureUnit(8, 3);
1233}
1234
1235MeasureUnit *MeasureUnit::createMilliampere(UErrorCode &status) {
1236 return MeasureUnit::create(8, 4, status);
1237}
1238
1239MeasureUnit MeasureUnit::getMilliampere() {
1240 return MeasureUnit(8, 4);
1241}
1242
1243MeasureUnit *MeasureUnit::createOhm(UErrorCode &status) {
1244 return MeasureUnit::create(8, 5, status);
1245}
1246
1247MeasureUnit MeasureUnit::getOhm() {
1248 return MeasureUnit(8, 5);
1249}
1250
1251MeasureUnit *MeasureUnit::createSiemens(UErrorCode &status) {
1252 return MeasureUnit::create(8, 6, status);
1253}
1254
1255MeasureUnit MeasureUnit::getSiemens() {
1256 return MeasureUnit(8, 6);
1257}
1258
1259MeasureUnit *MeasureUnit::createVolt(UErrorCode &status) {
1260 return MeasureUnit::create(8, 7, status);
1261}
1262
1263MeasureUnit MeasureUnit::getVolt() {
1264 return MeasureUnit(8, 7);
1265}
1266
1267MeasureUnit *MeasureUnit::createBecquerel(UErrorCode &status) {
1268 return MeasureUnit::create(9, 0, status);
1269}
1270
1271MeasureUnit MeasureUnit::getBecquerel() {
1272 return MeasureUnit(9, 0);
1273}
1274
1275MeasureUnit *MeasureUnit::createBritishThermalUnit(UErrorCode &status) {
1276 return MeasureUnit::create(9, 1, status);
1277}
1278
1279MeasureUnit MeasureUnit::getBritishThermalUnit() {
1280 return MeasureUnit(9, 1);
1281}
1282
1283MeasureUnit *MeasureUnit::createBritishThermalUnitIt(UErrorCode &status) {
1284 return MeasureUnit::create(9, 2, status);
1285}
1286
1287MeasureUnit MeasureUnit::getBritishThermalUnitIt() {
1288 return MeasureUnit(9, 2);
1289}
1290
1291MeasureUnit *MeasureUnit::createCalorie(UErrorCode &status) {
1292 return MeasureUnit::create(9, 3, status);
1293}
1294
1295MeasureUnit MeasureUnit::getCalorie() {
1296 return MeasureUnit(9, 3);
1297}
1298
1299MeasureUnit *MeasureUnit::createCalorieIt(UErrorCode &status) {
1300 return MeasureUnit::create(9, 4, status);
1301}
1302
1303MeasureUnit MeasureUnit::getCalorieIt() {
1304 return MeasureUnit(9, 4);
1305}
1306
1307MeasureUnit *MeasureUnit::createElectronvolt(UErrorCode &status) {
1308 return MeasureUnit::create(9, 5, status);
1309}
1310
1311MeasureUnit MeasureUnit::getElectronvolt() {
1312 return MeasureUnit(9, 5);
1313}
1314
1315MeasureUnit *MeasureUnit::createFoodcalorie(UErrorCode &status) {
1316 return MeasureUnit::create(9, 6, status);
1317}
1318
1319MeasureUnit MeasureUnit::getFoodcalorie() {
1320 return MeasureUnit(9, 6);
1321}
1322
1323MeasureUnit *MeasureUnit::createGray(UErrorCode &status) {
1324 return MeasureUnit::create(9, 7, status);
1325}
1326
1327MeasureUnit MeasureUnit::getGray() {
1328 return MeasureUnit(9, 7);
1329}
1330
1331MeasureUnit *MeasureUnit::createJoule(UErrorCode &status) {
1332 return MeasureUnit::create(9, 8, status);
1333}
1334
1335MeasureUnit MeasureUnit::getJoule() {
1336 return MeasureUnit(9, 8);
1337}
1338
1339MeasureUnit *MeasureUnit::createKilocalorie(UErrorCode &status) {
1340 return MeasureUnit::create(9, 9, status);
1341}
1342
1343MeasureUnit MeasureUnit::getKilocalorie() {
1344 return MeasureUnit(9, 9);
1345}
1346
1347MeasureUnit *MeasureUnit::createKilojoule(UErrorCode &status) {
1348 return MeasureUnit::create(9, 10, status);
1349}
1350
1351MeasureUnit MeasureUnit::getKilojoule() {
1352 return MeasureUnit(9, 10);
1353}
1354
1355MeasureUnit *MeasureUnit::createKilowattHour(UErrorCode &status) {
1356 return MeasureUnit::create(9, 11, status);
1357}
1358
1359MeasureUnit MeasureUnit::getKilowattHour() {
1360 return MeasureUnit(9, 11);
1361}
1362
1363MeasureUnit *MeasureUnit::createSievert(UErrorCode &status) {
1364 return MeasureUnit::create(9, 12, status);
1365}
1366
1367MeasureUnit MeasureUnit::getSievert() {
1368 return MeasureUnit(9, 12);
1369}
1370
1371MeasureUnit *MeasureUnit::createThermUs(UErrorCode &status) {
1372 return MeasureUnit::create(9, 13, status);
1373}
1374
1375MeasureUnit MeasureUnit::getThermUs() {
1376 return MeasureUnit(9, 13);
1377}
1378
1379MeasureUnit *MeasureUnit::createKilogramForce(UErrorCode &status) {
1380 return MeasureUnit::create(10, 0, status);
1381}
1382
1383MeasureUnit MeasureUnit::getKilogramForce() {
1384 return MeasureUnit(10, 0);
1385}
1386
1387MeasureUnit *MeasureUnit::createKilowattHourPer100Kilometer(UErrorCode &status) {
1388 return MeasureUnit::create(10, 1, status);
1389}
1390
1391MeasureUnit MeasureUnit::getKilowattHourPer100Kilometer() {
1392 return MeasureUnit(10, 1);
1393}
1394
1395MeasureUnit *MeasureUnit::createNewton(UErrorCode &status) {
1396 return MeasureUnit::create(10, 2, status);
1397}
1398
1399MeasureUnit MeasureUnit::getNewton() {
1400 return MeasureUnit(10, 2);
1401}
1402
1403MeasureUnit *MeasureUnit::createPoundForce(UErrorCode &status) {
1404 return MeasureUnit::create(10, 3, status);
1405}
1406
1407MeasureUnit MeasureUnit::getPoundForce() {
1408 return MeasureUnit(10, 3);
1409}
1410
1411MeasureUnit *MeasureUnit::createGigahertz(UErrorCode &status) {
1412 return MeasureUnit::create(11, 0, status);
1413}
1414
1415MeasureUnit MeasureUnit::getGigahertz() {
1416 return MeasureUnit(11, 0);
1417}
1418
1419MeasureUnit *MeasureUnit::createHertz(UErrorCode &status) {
1420 return MeasureUnit::create(11, 1, status);
1421}
1422
1423MeasureUnit MeasureUnit::getHertz() {
1424 return MeasureUnit(11, 1);
1425}
1426
1427MeasureUnit *MeasureUnit::createKilohertz(UErrorCode &status) {
1428 return MeasureUnit::create(11, 2, status);
1429}
1430
1431MeasureUnit MeasureUnit::getKilohertz() {
1432 return MeasureUnit(11, 2);
1433}
1434
1435MeasureUnit *MeasureUnit::createMegahertz(UErrorCode &status) {
1436 return MeasureUnit::create(11, 3, status);
1437}
1438
1439MeasureUnit MeasureUnit::getMegahertz() {
1440 return MeasureUnit(11, 3);
1441}
1442
1443MeasureUnit *MeasureUnit::createDot(UErrorCode &status) {
1444 return MeasureUnit::create(12, 0, status);
1445}
1446
1447MeasureUnit MeasureUnit::getDot() {
1448 return MeasureUnit(12, 0);
1449}
1450
1451MeasureUnit *MeasureUnit::createDotPerCentimeter(UErrorCode &status) {
1452 return MeasureUnit::create(12, 1, status);
1453}
1454
1455MeasureUnit MeasureUnit::getDotPerCentimeter() {
1456 return MeasureUnit(12, 1);
1457}
1458
1459MeasureUnit *MeasureUnit::createDotPerInch(UErrorCode &status) {
1460 return MeasureUnit::create(12, 2, status);
1461}
1462
1463MeasureUnit MeasureUnit::getDotPerInch() {
1464 return MeasureUnit(12, 2);
1465}
1466
1467MeasureUnit *MeasureUnit::createEm(UErrorCode &status) {
1468 return MeasureUnit::create(12, 3, status);
1469}
1470
1471MeasureUnit MeasureUnit::getEm() {
1472 return MeasureUnit(12, 3);
1473}
1474
1475MeasureUnit *MeasureUnit::createMegapixel(UErrorCode &status) {
1476 return MeasureUnit::create(12, 4, status);
1477}
1478
1479MeasureUnit MeasureUnit::getMegapixel() {
1480 return MeasureUnit(12, 4);
1481}
1482
1483MeasureUnit *MeasureUnit::createPixel(UErrorCode &status) {
1484 return MeasureUnit::create(12, 5, status);
1485}
1486
1487MeasureUnit MeasureUnit::getPixel() {
1488 return MeasureUnit(12, 5);
1489}
1490
1491MeasureUnit *MeasureUnit::createPixelPerCentimeter(UErrorCode &status) {
1492 return MeasureUnit::create(12, 6, status);
1493}
1494
1495MeasureUnit MeasureUnit::getPixelPerCentimeter() {
1496 return MeasureUnit(12, 6);
1497}
1498
1499MeasureUnit *MeasureUnit::createPixelPerInch(UErrorCode &status) {
1500 return MeasureUnit::create(12, 7, status);
1501}
1502
1503MeasureUnit MeasureUnit::getPixelPerInch() {
1504 return MeasureUnit(12, 7);
1505}
1506
1507MeasureUnit *MeasureUnit::createAstronomicalUnit(UErrorCode &status) {
1508 return MeasureUnit::create(13, 0, status);
1509}
1510
1511MeasureUnit MeasureUnit::getAstronomicalUnit() {
1512 return MeasureUnit(13, 0);
1513}
1514
1515MeasureUnit *MeasureUnit::createCentimeter(UErrorCode &status) {
1516 return MeasureUnit::create(13, 1, status);
1517}
1518
1519MeasureUnit MeasureUnit::getCentimeter() {
1520 return MeasureUnit(13, 1);
1521}
1522
1523MeasureUnit *MeasureUnit::createChain(UErrorCode &status) {
1524 return MeasureUnit::create(13, 2, status);
1525}
1526
1527MeasureUnit MeasureUnit::getChain() {
1528 return MeasureUnit(13, 2);
1529}
1530
1531MeasureUnit *MeasureUnit::createDecimeter(UErrorCode &status) {
1532 return MeasureUnit::create(13, 3, status);
1533}
1534
1535MeasureUnit MeasureUnit::getDecimeter() {
1536 return MeasureUnit(13, 3);
1537}
1538
1539MeasureUnit *MeasureUnit::createEarthRadius(UErrorCode &status) {
1540 return MeasureUnit::create(13, 4, status);
1541}
1542
1543MeasureUnit MeasureUnit::getEarthRadius() {
1544 return MeasureUnit(13, 4);
1545}
1546
1547MeasureUnit *MeasureUnit::createFathom(UErrorCode &status) {
1548 return MeasureUnit::create(13, 5, status);
1549}
1550
1551MeasureUnit MeasureUnit::getFathom() {
1552 return MeasureUnit(13, 5);
1553}
1554
1555MeasureUnit *MeasureUnit::createFoot(UErrorCode &status) {
1556 return MeasureUnit::create(13, 6, status);
1557}
1558
1559MeasureUnit MeasureUnit::getFoot() {
1560 return MeasureUnit(13, 6);
1561}
1562
1563MeasureUnit *MeasureUnit::createFurlong(UErrorCode &status) {
1564 return MeasureUnit::create(13, 7, status);
1565}
1566
1567MeasureUnit MeasureUnit::getFurlong() {
1568 return MeasureUnit(13, 7);
1569}
1570
1571MeasureUnit *MeasureUnit::createInch(UErrorCode &status) {
1572 return MeasureUnit::create(13, 8, status);
1573}
1574
1575MeasureUnit MeasureUnit::getInch() {
1576 return MeasureUnit(13, 8);
1577}
1578
1579MeasureUnit *MeasureUnit::createJoJp(UErrorCode &status) {
1580 return MeasureUnit::create(13, 9, status);
1581}
1582
1583MeasureUnit MeasureUnit::getJoJp() {
1584 return MeasureUnit(13, 9);
1585}
1586
1587MeasureUnit *MeasureUnit::createKen(UErrorCode &status) {
1588 return MeasureUnit::create(13, 10, status);
1589}
1590
1591MeasureUnit MeasureUnit::getKen() {
1592 return MeasureUnit(13, 10);
1593}
1594
1595MeasureUnit *MeasureUnit::createKilometer(UErrorCode &status) {
1596 return MeasureUnit::create(13, 11, status);
1597}
1598
1599MeasureUnit MeasureUnit::getKilometer() {
1600 return MeasureUnit(13, 11);
1601}
1602
1603MeasureUnit *MeasureUnit::createLightYear(UErrorCode &status) {
1604 return MeasureUnit::create(13, 12, status);
1605}
1606
1607MeasureUnit MeasureUnit::getLightYear() {
1608 return MeasureUnit(13, 12);
1609}
1610
1611MeasureUnit *MeasureUnit::createMeter(UErrorCode &status) {
1612 return MeasureUnit::create(13, 13, status);
1613}
1614
1615MeasureUnit MeasureUnit::getMeter() {
1616 return MeasureUnit(13, 13);
1617}
1618
1619MeasureUnit *MeasureUnit::createMicrometer(UErrorCode &status) {
1620 return MeasureUnit::create(13, 14, status);
1621}
1622
1623MeasureUnit MeasureUnit::getMicrometer() {
1624 return MeasureUnit(13, 14);
1625}
1626
1627MeasureUnit *MeasureUnit::createMile(UErrorCode &status) {
1628 return MeasureUnit::create(13, 15, status);
1629}
1630
1631MeasureUnit MeasureUnit::getMile() {
1632 return MeasureUnit(13, 15);
1633}
1634
1635MeasureUnit *MeasureUnit::createMileScandinavian(UErrorCode &status) {
1636 return MeasureUnit::create(13, 16, status);
1637}
1638
1639MeasureUnit MeasureUnit::getMileScandinavian() {
1640 return MeasureUnit(13, 16);
1641}
1642
1643MeasureUnit *MeasureUnit::createMillimeter(UErrorCode &status) {
1644 return MeasureUnit::create(13, 17, status);
1645}
1646
1647MeasureUnit MeasureUnit::getMillimeter() {
1648 return MeasureUnit(13, 17);
1649}
1650
1651MeasureUnit *MeasureUnit::createNanometer(UErrorCode &status) {
1652 return MeasureUnit::create(13, 18, status);
1653}
1654
1655MeasureUnit MeasureUnit::getNanometer() {
1656 return MeasureUnit(13, 18);
1657}
1658
1659MeasureUnit *MeasureUnit::createNauticalMile(UErrorCode &status) {
1660 return MeasureUnit::create(13, 19, status);
1661}
1662
1663MeasureUnit MeasureUnit::getNauticalMile() {
1664 return MeasureUnit(13, 19);
1665}
1666
1667MeasureUnit *MeasureUnit::createParsec(UErrorCode &status) {
1668 return MeasureUnit::create(13, 20, status);
1669}
1670
1671MeasureUnit MeasureUnit::getParsec() {
1672 return MeasureUnit(13, 20);
1673}
1674
1675MeasureUnit *MeasureUnit::createPicometer(UErrorCode &status) {
1676 return MeasureUnit::create(13, 21, status);
1677}
1678
1679MeasureUnit MeasureUnit::getPicometer() {
1680 return MeasureUnit(13, 21);
1681}
1682
1683MeasureUnit *MeasureUnit::createPoint(UErrorCode &status) {
1684 return MeasureUnit::create(13, 22, status);
1685}
1686
1687MeasureUnit MeasureUnit::getPoint() {
1688 return MeasureUnit(13, 22);
1689}
1690
1691MeasureUnit *MeasureUnit::createRiJp(UErrorCode &status) {
1692 return MeasureUnit::create(13, 23, status);
1693}
1694
1695MeasureUnit MeasureUnit::getRiJp() {
1696 return MeasureUnit(13, 23);
1697}
1698
1699MeasureUnit *MeasureUnit::createRin(UErrorCode &status) {
1700 return MeasureUnit::create(13, 24, status);
1701}
1702
1703MeasureUnit MeasureUnit::getRin() {
1704 return MeasureUnit(13, 24);
1705}
1706
1707MeasureUnit *MeasureUnit::createRod(UErrorCode &status) {
1708 return MeasureUnit::create(13, 25, status);
1709}
1710
1711MeasureUnit MeasureUnit::getRod() {
1712 return MeasureUnit(13, 25);
1713}
1714
1715MeasureUnit *MeasureUnit::createShakuCloth(UErrorCode &status) {
1716 return MeasureUnit::create(13, 26, status);
1717}
1718
1719MeasureUnit MeasureUnit::getShakuCloth() {
1720 return MeasureUnit(13, 26);
1721}
1722
1723MeasureUnit *MeasureUnit::createShakuLength(UErrorCode &status) {
1724 return MeasureUnit::create(13, 27, status);
1725}
1726
1727MeasureUnit MeasureUnit::getShakuLength() {
1728 return MeasureUnit(13, 27);
1729}
1730
1731MeasureUnit *MeasureUnit::createSolarRadius(UErrorCode &status) {
1732 return MeasureUnit::create(13, 28, status);
1733}
1734
1735MeasureUnit MeasureUnit::getSolarRadius() {
1736 return MeasureUnit(13, 28);
1737}
1738
1739MeasureUnit *MeasureUnit::createSun(UErrorCode &status) {
1740 return MeasureUnit::create(13, 29, status);
1741}
1742
1743MeasureUnit MeasureUnit::getSun() {
1744 return MeasureUnit(13, 29);
1745}
1746
1747MeasureUnit *MeasureUnit::createYard(UErrorCode &status) {
1748 return MeasureUnit::create(13, 30, status);
1749}
1750
1751MeasureUnit MeasureUnit::getYard() {
1752 return MeasureUnit(13, 30);
1753}
1754
1755MeasureUnit *MeasureUnit::createCandela(UErrorCode &status) {
1756 return MeasureUnit::create(14, 0, status);
1757}
1758
1759MeasureUnit MeasureUnit::getCandela() {
1760 return MeasureUnit(14, 0);
1761}
1762
1763MeasureUnit *MeasureUnit::createLumen(UErrorCode &status) {
1764 return MeasureUnit::create(14, 1, status);
1765}
1766
1767MeasureUnit MeasureUnit::getLumen() {
1768 return MeasureUnit(14, 1);
1769}
1770
1771MeasureUnit *MeasureUnit::createLux(UErrorCode &status) {
1772 return MeasureUnit::create(14, 2, status);
1773}
1774
1775MeasureUnit MeasureUnit::getLux() {
1776 return MeasureUnit(14, 2);
1777}
1778
1779MeasureUnit *MeasureUnit::createSolarLuminosity(UErrorCode &status) {
1780 return MeasureUnit::create(14, 3, status);
1781}
1782
1783MeasureUnit MeasureUnit::getSolarLuminosity() {
1784 return MeasureUnit(14, 3);
1785}
1786
1787MeasureUnit *MeasureUnit::createTesla(UErrorCode &status) {
1788 return MeasureUnit::create(15, 0, status);
1789}
1790
1791MeasureUnit MeasureUnit::getTesla() {
1792 return MeasureUnit(15, 0);
1793}
1794
1795MeasureUnit *MeasureUnit::createWeber(UErrorCode &status) {
1796 return MeasureUnit::create(15, 1, status);
1797}
1798
1799MeasureUnit MeasureUnit::getWeber() {
1800 return MeasureUnit(15, 1);
1801}
1802
1803MeasureUnit *MeasureUnit::createCarat(UErrorCode &status) {
1804 return MeasureUnit::create(16, 0, status);
1805}
1806
1807MeasureUnit MeasureUnit::getCarat() {
1808 return MeasureUnit(16, 0);
1809}
1810
1811MeasureUnit *MeasureUnit::createDalton(UErrorCode &status) {
1812 return MeasureUnit::create(16, 1, status);
1813}
1814
1815MeasureUnit MeasureUnit::getDalton() {
1816 return MeasureUnit(16, 1);
1817}
1818
1819MeasureUnit *MeasureUnit::createEarthMass(UErrorCode &status) {
1820 return MeasureUnit::create(16, 2, status);
1821}
1822
1823MeasureUnit MeasureUnit::getEarthMass() {
1824 return MeasureUnit(16, 2);
1825}
1826
1827MeasureUnit *MeasureUnit::createFun(UErrorCode &status) {
1828 return MeasureUnit::create(16, 3, status);
1829}
1830
1831MeasureUnit MeasureUnit::getFun() {
1832 return MeasureUnit(16, 3);
1833}
1834
1835MeasureUnit *MeasureUnit::createGrain(UErrorCode &status) {
1836 return MeasureUnit::create(16, 4, status);
1837}
1838
1839MeasureUnit MeasureUnit::getGrain() {
1840 return MeasureUnit(16, 4);
1841}
1842
1843MeasureUnit *MeasureUnit::createGram(UErrorCode &status) {
1844 return MeasureUnit::create(16, 5, status);
1845}
1846
1847MeasureUnit MeasureUnit::getGram() {
1848 return MeasureUnit(16, 5);
1849}
1850
1851MeasureUnit *MeasureUnit::createKilogram(UErrorCode &status) {
1852 return MeasureUnit::create(16, 6, status);
1853}
1854
1855MeasureUnit MeasureUnit::getKilogram() {
1856 return MeasureUnit(16, 6);
1857}
1858
1859MeasureUnit *MeasureUnit::createMicrogram(UErrorCode &status) {
1860 return MeasureUnit::create(16, 7, status);
1861}
1862
1863MeasureUnit MeasureUnit::getMicrogram() {
1864 return MeasureUnit(16, 7);
1865}
1866
1867MeasureUnit *MeasureUnit::createMilligram(UErrorCode &status) {
1868 return MeasureUnit::create(16, 8, status);
1869}
1870
1871MeasureUnit MeasureUnit::getMilligram() {
1872 return MeasureUnit(16, 8);
1873}
1874
1875MeasureUnit *MeasureUnit::createOunce(UErrorCode &status) {
1876 return MeasureUnit::create(16, 9, status);
1877}
1878
1879MeasureUnit MeasureUnit::getOunce() {
1880 return MeasureUnit(16, 9);
1881}
1882
1883MeasureUnit *MeasureUnit::createOunceTroy(UErrorCode &status) {
1884 return MeasureUnit::create(16, 10, status);
1885}
1886
1887MeasureUnit MeasureUnit::getOunceTroy() {
1888 return MeasureUnit(16, 10);
1889}
1890
1891MeasureUnit *MeasureUnit::createPound(UErrorCode &status) {
1892 return MeasureUnit::create(16, 11, status);
1893}
1894
1895MeasureUnit MeasureUnit::getPound() {
1896 return MeasureUnit(16, 11);
1897}
1898
1899MeasureUnit *MeasureUnit::createSlug(UErrorCode &status) {
1900 return MeasureUnit::create(16, 12, status);
1901}
1902
1903MeasureUnit MeasureUnit::getSlug() {
1904 return MeasureUnit(16, 12);
1905}
1906
1907MeasureUnit *MeasureUnit::createSolarMass(UErrorCode &status) {
1908 return MeasureUnit::create(16, 13, status);
1909}
1910
1911MeasureUnit MeasureUnit::getSolarMass() {
1912 return MeasureUnit(16, 13);
1913}
1914
1915MeasureUnit *MeasureUnit::createStone(UErrorCode &status) {
1916 return MeasureUnit::create(16, 14, status);
1917}
1918
1919MeasureUnit MeasureUnit::getStone() {
1920 return MeasureUnit(16, 14);
1921}
1922
1923MeasureUnit *MeasureUnit::createTon(UErrorCode &status) {
1924 return MeasureUnit::create(16, 15, status);
1925}
1926
1927MeasureUnit MeasureUnit::getTon() {
1928 return MeasureUnit(16, 15);
1929}
1930
1931MeasureUnit *MeasureUnit::createTonne(UErrorCode &status) {
1932 return MeasureUnit::create(16, 16, status);
1933}
1934
1935MeasureUnit MeasureUnit::getTonne() {
1936 return MeasureUnit(16, 16);
1937}
1938
1939MeasureUnit *MeasureUnit::createMetricTon(UErrorCode &status) {
1940 return MeasureUnit::create(16, 16, status);
1941}
1942
1943MeasureUnit MeasureUnit::getMetricTon() {
1944 return MeasureUnit(16, 16);
1945}
1946
1947MeasureUnit *MeasureUnit::createGigawatt(UErrorCode &status) {
1948 return MeasureUnit::create(18, 0, status);
1949}
1950
1951MeasureUnit MeasureUnit::getGigawatt() {
1952 return MeasureUnit(18, 0);
1953}
1954
1955MeasureUnit *MeasureUnit::createHorsepower(UErrorCode &status) {
1956 return MeasureUnit::create(18, 1, status);
1957}
1958
1959MeasureUnit MeasureUnit::getHorsepower() {
1960 return MeasureUnit(18, 1);
1961}
1962
1963MeasureUnit *MeasureUnit::createKilowatt(UErrorCode &status) {
1964 return MeasureUnit::create(18, 2, status);
1965}
1966
1967MeasureUnit MeasureUnit::getKilowatt() {
1968 return MeasureUnit(18, 2);
1969}
1970
1971MeasureUnit *MeasureUnit::createMegawatt(UErrorCode &status) {
1972 return MeasureUnit::create(18, 3, status);
1973}
1974
1975MeasureUnit MeasureUnit::getMegawatt() {
1976 return MeasureUnit(18, 3);
1977}
1978
1979MeasureUnit *MeasureUnit::createMilliwatt(UErrorCode &status) {
1980 return MeasureUnit::create(18, 4, status);
1981}
1982
1983MeasureUnit MeasureUnit::getMilliwatt() {
1984 return MeasureUnit(18, 4);
1985}
1986
1987MeasureUnit *MeasureUnit::createWatt(UErrorCode &status) {
1988 return MeasureUnit::create(18, 5, status);
1989}
1990
1991MeasureUnit MeasureUnit::getWatt() {
1992 return MeasureUnit(18, 5);
1993}
1994
1995MeasureUnit *MeasureUnit::createAtmosphere(UErrorCode &status) {
1996 return MeasureUnit::create(19, 0, status);
1997}
1998
1999MeasureUnit MeasureUnit::getAtmosphere() {
2000 return MeasureUnit(19, 0);
2001}
2002
2003MeasureUnit *MeasureUnit::createBar(UErrorCode &status) {
2004 return MeasureUnit::create(19, 1, status);
2005}
2006
2007MeasureUnit MeasureUnit::getBar() {
2008 return MeasureUnit(19, 1);
2009}
2010
2011MeasureUnit *MeasureUnit::createGasolineEnergyDensity(UErrorCode &status) {
2012 return MeasureUnit::create(19, 2, status);
2013}
2014
2015MeasureUnit MeasureUnit::getGasolineEnergyDensity() {
2016 return MeasureUnit(19, 2);
2017}
2018
2019MeasureUnit *MeasureUnit::createHectopascal(UErrorCode &status) {
2020 return MeasureUnit::create(19, 3, status);
2021}
2022
2023MeasureUnit MeasureUnit::getHectopascal() {
2024 return MeasureUnit(19, 3);
2025}
2026
2027MeasureUnit *MeasureUnit::createInchHg(UErrorCode &status) {
2028 return MeasureUnit::create(19, 4, status);
2029}
2030
2031MeasureUnit MeasureUnit::getInchHg() {
2032 return MeasureUnit(19, 4);
2033}
2034
2035MeasureUnit *MeasureUnit::createKilopascal(UErrorCode &status) {
2036 return MeasureUnit::create(19, 5, status);
2037}
2038
2039MeasureUnit MeasureUnit::getKilopascal() {
2040 return MeasureUnit(19, 5);
2041}
2042
2043MeasureUnit *MeasureUnit::createMegapascal(UErrorCode &status) {
2044 return MeasureUnit::create(19, 6, status);
2045}
2046
2047MeasureUnit MeasureUnit::getMegapascal() {
2048 return MeasureUnit(19, 6);
2049}
2050
2051MeasureUnit *MeasureUnit::createMillibar(UErrorCode &status) {
2052 return MeasureUnit::create(19, 7, status);
2053}
2054
2055MeasureUnit MeasureUnit::getMillibar() {
2056 return MeasureUnit(19, 7);
2057}
2058
2059MeasureUnit *MeasureUnit::createMillimeterOfMercury(UErrorCode &status) {
2060 return MeasureUnit::create(19, 8, status);
2061}
2062
2063MeasureUnit MeasureUnit::getMillimeterOfMercury() {
2064 return MeasureUnit(19, 8);
2065}
2066
2067MeasureUnit *MeasureUnit::createOfhg(UErrorCode &status) {
2068 return MeasureUnit::create(19, 9, status);
2069}
2070
2071MeasureUnit MeasureUnit::getOfhg() {
2072 return MeasureUnit(19, 9);
2073}
2074
2075MeasureUnit *MeasureUnit::createPascal(UErrorCode &status) {
2076 return MeasureUnit::create(19, 10, status);
2077}
2078
2079MeasureUnit MeasureUnit::getPascal() {
2080 return MeasureUnit(19, 10);
2081}
2082
2083MeasureUnit *MeasureUnit::createPoundPerSquareInch(UErrorCode &status) {
2084 return MeasureUnit::create(19, 11, status);
2085}
2086
2087MeasureUnit MeasureUnit::getPoundPerSquareInch() {
2088 return MeasureUnit(19, 11);
2089}
2090
2091MeasureUnit *MeasureUnit::createBeaufort(UErrorCode &status) {
2092 return MeasureUnit::create(20, 0, status);
2093}
2094
2095MeasureUnit MeasureUnit::getBeaufort() {
2096 return MeasureUnit(20, 0);
2097}
2098
2099MeasureUnit *MeasureUnit::createKilometerPerHour(UErrorCode &status) {
2100 return MeasureUnit::create(20, 1, status);
2101}
2102
2103MeasureUnit MeasureUnit::getKilometerPerHour() {
2104 return MeasureUnit(20, 1);
2105}
2106
2107MeasureUnit *MeasureUnit::createKnot(UErrorCode &status) {
2108 return MeasureUnit::create(20, 2, status);
2109}
2110
2111MeasureUnit MeasureUnit::getKnot() {
2112 return MeasureUnit(20, 2);
2113}
2114
2115MeasureUnit *MeasureUnit::createLightSpeed(UErrorCode &status) {
2116 return MeasureUnit::create(20, 3, status);
2117}
2118
2119MeasureUnit MeasureUnit::getLightSpeed() {
2120 return MeasureUnit(20, 3);
2121}
2122
2123MeasureUnit *MeasureUnit::createMeterPerSecond(UErrorCode &status) {
2124 return MeasureUnit::create(20, 4, status);
2125}
2126
2127MeasureUnit MeasureUnit::getMeterPerSecond() {
2128 return MeasureUnit(20, 4);
2129}
2130
2131MeasureUnit *MeasureUnit::createMilePerHour(UErrorCode &status) {
2132 return MeasureUnit::create(20, 5, status);
2133}
2134
2135MeasureUnit MeasureUnit::getMilePerHour() {
2136 return MeasureUnit(20, 5);
2137}
2138
2139MeasureUnit *MeasureUnit::createCelsius(UErrorCode &status) {
2140 return MeasureUnit::create(21, 0, status);
2141}
2142
2143MeasureUnit MeasureUnit::getCelsius() {
2144 return MeasureUnit(21, 0);
2145}
2146
2147MeasureUnit *MeasureUnit::createFahrenheit(UErrorCode &status) {
2148 return MeasureUnit::create(21, 1, status);
2149}
2150
2151MeasureUnit MeasureUnit::getFahrenheit() {
2152 return MeasureUnit(21, 1);
2153}
2154
2155MeasureUnit *MeasureUnit::createGenericTemperature(UErrorCode &status) {
2156 return MeasureUnit::create(21, 2, status);
2157}
2158
2159MeasureUnit MeasureUnit::getGenericTemperature() {
2160 return MeasureUnit(21, 2);
2161}
2162
2163MeasureUnit *MeasureUnit::createKelvin(UErrorCode &status) {
2164 return MeasureUnit::create(21, 3, status);
2165}
2166
2167MeasureUnit MeasureUnit::getKelvin() {
2168 return MeasureUnit(21, 3);
2169}
2170
2171MeasureUnit *MeasureUnit::createRankine(UErrorCode &status) {
2172 return MeasureUnit::create(21, 4, status);
2173}
2174
2175MeasureUnit MeasureUnit::getRankine() {
2176 return MeasureUnit(21, 4);
2177}
2178
2179MeasureUnit *MeasureUnit::createNewtonMeter(UErrorCode &status) {
2180 return MeasureUnit::create(22, 0, status);
2181}
2182
2183MeasureUnit MeasureUnit::getNewtonMeter() {
2184 return MeasureUnit(22, 0);
2185}
2186
2187MeasureUnit *MeasureUnit::createPoundFoot(UErrorCode &status) {
2188 return MeasureUnit::create(22, 1, status);
2189}
2190
2191MeasureUnit MeasureUnit::getPoundFoot() {
2192 return MeasureUnit(22, 1);
2193}
2194
2195MeasureUnit *MeasureUnit::createAcreFoot(UErrorCode &status) {
2196 return MeasureUnit::create(23, 0, status);
2197}
2198
2199MeasureUnit MeasureUnit::getAcreFoot() {
2200 return MeasureUnit(23, 0);
2201}
2202
2203MeasureUnit *MeasureUnit::createBarrel(UErrorCode &status) {
2204 return MeasureUnit::create(23, 1, status);
2205}
2206
2207MeasureUnit MeasureUnit::getBarrel() {
2208 return MeasureUnit(23, 1);
2209}
2210
2211MeasureUnit *MeasureUnit::createBushel(UErrorCode &status) {
2212 return MeasureUnit::create(23, 2, status);
2213}
2214
2215MeasureUnit MeasureUnit::getBushel() {
2216 return MeasureUnit(23, 2);
2217}
2218
2219MeasureUnit *MeasureUnit::createCentiliter(UErrorCode &status) {
2220 return MeasureUnit::create(23, 3, status);
2221}
2222
2223MeasureUnit MeasureUnit::getCentiliter() {
2224 return MeasureUnit(23, 3);
2225}
2226
2227MeasureUnit *MeasureUnit::createCubicCentimeter(UErrorCode &status) {
2228 return MeasureUnit::create(23, 4, status);
2229}
2230
2231MeasureUnit MeasureUnit::getCubicCentimeter() {
2232 return MeasureUnit(23, 4);
2233}
2234
2235MeasureUnit *MeasureUnit::createCubicFoot(UErrorCode &status) {
2236 return MeasureUnit::create(23, 5, status);
2237}
2238
2239MeasureUnit MeasureUnit::getCubicFoot() {
2240 return MeasureUnit(23, 5);
2241}
2242
2243MeasureUnit *MeasureUnit::createCubicInch(UErrorCode &status) {
2244 return MeasureUnit::create(23, 6, status);
2245}
2246
2247MeasureUnit MeasureUnit::getCubicInch() {
2248 return MeasureUnit(23, 6);
2249}
2250
2251MeasureUnit *MeasureUnit::createCubicKilometer(UErrorCode &status) {
2252 return MeasureUnit::create(23, 7, status);
2253}
2254
2255MeasureUnit MeasureUnit::getCubicKilometer() {
2256 return MeasureUnit(23, 7);
2257}
2258
2259MeasureUnit *MeasureUnit::createCubicMeter(UErrorCode &status) {
2260 return MeasureUnit::create(23, 8, status);
2261}
2262
2263MeasureUnit MeasureUnit::getCubicMeter() {
2264 return MeasureUnit(23, 8);
2265}
2266
2267MeasureUnit *MeasureUnit::createCubicMile(UErrorCode &status) {
2268 return MeasureUnit::create(23, 9, status);
2269}
2270
2271MeasureUnit MeasureUnit::getCubicMile() {
2272 return MeasureUnit(23, 9);
2273}
2274
2275MeasureUnit *MeasureUnit::createCubicYard(UErrorCode &status) {
2276 return MeasureUnit::create(23, 10, status);
2277}
2278
2279MeasureUnit MeasureUnit::getCubicYard() {
2280 return MeasureUnit(23, 10);
2281}
2282
2283MeasureUnit *MeasureUnit::createCup(UErrorCode &status) {
2284 return MeasureUnit::create(23, 11, status);
2285}
2286
2287MeasureUnit MeasureUnit::getCup() {
2288 return MeasureUnit(23, 11);
2289}
2290
2291MeasureUnit *MeasureUnit::createCupImperial(UErrorCode &status) {
2292 return MeasureUnit::create(23, 12, status);
2293}
2294
2295MeasureUnit MeasureUnit::getCupImperial() {
2296 return MeasureUnit(23, 12);
2297}
2298
2299MeasureUnit *MeasureUnit::createCupJp(UErrorCode &status) {
2300 return MeasureUnit::create(23, 13, status);
2301}
2302
2303MeasureUnit MeasureUnit::getCupJp() {
2304 return MeasureUnit(23, 13);
2305}
2306
2307MeasureUnit *MeasureUnit::createCupMetric(UErrorCode &status) {
2308 return MeasureUnit::create(23, 14, status);
2309}
2310
2311MeasureUnit MeasureUnit::getCupMetric() {
2312 return MeasureUnit(23, 14);
2313}
2314
2315MeasureUnit *MeasureUnit::createDeciliter(UErrorCode &status) {
2316 return MeasureUnit::create(23, 15, status);
2317}
2318
2319MeasureUnit MeasureUnit::getDeciliter() {
2320 return MeasureUnit(23, 15);
2321}
2322
2323MeasureUnit *MeasureUnit::createDessertSpoon(UErrorCode &status) {
2324 return MeasureUnit::create(23, 16, status);
2325}
2326
2327MeasureUnit MeasureUnit::getDessertSpoon() {
2328 return MeasureUnit(23, 16);
2329}
2330
2331MeasureUnit *MeasureUnit::createDessertSpoonImperial(UErrorCode &status) {
2332 return MeasureUnit::create(23, 17, status);
2333}
2334
2335MeasureUnit MeasureUnit::getDessertSpoonImperial() {
2336 return MeasureUnit(23, 17);
2337}
2338
2339MeasureUnit *MeasureUnit::createDram(UErrorCode &status) {
2340 return MeasureUnit::create(23, 18, status);
2341}
2342
2343MeasureUnit MeasureUnit::getDram() {
2344 return MeasureUnit(23, 18);
2345}
2346
2347MeasureUnit *MeasureUnit::createDrop(UErrorCode &status) {
2348 return MeasureUnit::create(23, 19, status);
2349}
2350
2351MeasureUnit MeasureUnit::getDrop() {
2352 return MeasureUnit(23, 19);
2353}
2354
2355MeasureUnit *MeasureUnit::createFluidOunce(UErrorCode &status) {
2356 return MeasureUnit::create(23, 20, status);
2357}
2358
2359MeasureUnit MeasureUnit::getFluidOunce() {
2360 return MeasureUnit(23, 20);
2361}
2362
2363MeasureUnit *MeasureUnit::createFluidOunceImperial(UErrorCode &status) {
2364 return MeasureUnit::create(23, 21, status);
2365}
2366
2367MeasureUnit MeasureUnit::getFluidOunceImperial() {
2368 return MeasureUnit(23, 21);
2369}
2370
2371MeasureUnit *MeasureUnit::createFluidOunceMetric(UErrorCode &status) {
2372 return MeasureUnit::create(23, 22, status);
2373}
2374
2375MeasureUnit MeasureUnit::getFluidOunceMetric() {
2376 return MeasureUnit(23, 22);
2377}
2378
2379MeasureUnit *MeasureUnit::createGallon(UErrorCode &status) {
2380 return MeasureUnit::create(23, 23, status);
2381}
2382
2383MeasureUnit MeasureUnit::getGallon() {
2384 return MeasureUnit(23, 23);
2385}
2386
2387MeasureUnit *MeasureUnit::createGallonImperial(UErrorCode &status) {
2388 return MeasureUnit::create(23, 24, status);
2389}
2390
2391MeasureUnit MeasureUnit::getGallonImperial() {
2392 return MeasureUnit(23, 24);
2393}
2394
2395MeasureUnit *MeasureUnit::createHectoliter(UErrorCode &status) {
2396 return MeasureUnit::create(23, 25, status);
2397}
2398
2399MeasureUnit MeasureUnit::getHectoliter() {
2400 return MeasureUnit(23, 25);
2401}
2402
2403MeasureUnit *MeasureUnit::createJigger(UErrorCode &status) {
2404 return MeasureUnit::create(23, 26, status);
2405}
2406
2407MeasureUnit MeasureUnit::getJigger() {
2408 return MeasureUnit(23, 26);
2409}
2410
2411MeasureUnit *MeasureUnit::createKoku(UErrorCode &status) {
2412 return MeasureUnit::create(23, 27, status);
2413}
2414
2415MeasureUnit MeasureUnit::getKoku() {
2416 return MeasureUnit(23, 27);
2417}
2418
2419MeasureUnit *MeasureUnit::createKosaji(UErrorCode &status) {
2420 return MeasureUnit::create(23, 28, status);
2421}
2422
2423MeasureUnit MeasureUnit::getKosaji() {
2424 return MeasureUnit(23, 28);
2425}
2426
2427MeasureUnit *MeasureUnit::createLiter(UErrorCode &status) {
2428 return MeasureUnit::create(23, 29, status);
2429}
2430
2431MeasureUnit MeasureUnit::getLiter() {
2432 return MeasureUnit(23, 29);
2433}
2434
2435MeasureUnit *MeasureUnit::createMegaliter(UErrorCode &status) {
2436 return MeasureUnit::create(23, 30, status);
2437}
2438
2439MeasureUnit MeasureUnit::getMegaliter() {
2440 return MeasureUnit(23, 30);
2441}
2442
2443MeasureUnit *MeasureUnit::createMilliliter(UErrorCode &status) {
2444 return MeasureUnit::create(23, 31, status);
2445}
2446
2447MeasureUnit MeasureUnit::getMilliliter() {
2448 return MeasureUnit(23, 31);
2449}
2450
2451MeasureUnit *MeasureUnit::createOsaji(UErrorCode &status) {
2452 return MeasureUnit::create(23, 32, status);
2453}
2454
2455MeasureUnit MeasureUnit::getOsaji() {
2456 return MeasureUnit(23, 32);
2457}
2458
2459MeasureUnit *MeasureUnit::createPinch(UErrorCode &status) {
2460 return MeasureUnit::create(23, 33, status);
2461}
2462
2463MeasureUnit MeasureUnit::getPinch() {
2464 return MeasureUnit(23, 33);
2465}
2466
2467MeasureUnit *MeasureUnit::createPint(UErrorCode &status) {
2468 return MeasureUnit::create(23, 34, status);
2469}
2470
2471MeasureUnit MeasureUnit::getPint() {
2472 return MeasureUnit(23, 34);
2473}
2474
2475MeasureUnit *MeasureUnit::createPintImperial(UErrorCode &status) {
2476 return MeasureUnit::create(23, 35, status);
2477}
2478
2479MeasureUnit MeasureUnit::getPintImperial() {
2480 return MeasureUnit(23, 35);
2481}
2482
2483MeasureUnit *MeasureUnit::createPintMetric(UErrorCode &status) {
2484 return MeasureUnit::create(23, 36, status);
2485}
2486
2487MeasureUnit MeasureUnit::getPintMetric() {
2488 return MeasureUnit(23, 36);
2489}
2490
2491MeasureUnit *MeasureUnit::createQuart(UErrorCode &status) {
2492 return MeasureUnit::create(23, 37, status);
2493}
2494
2495MeasureUnit MeasureUnit::getQuart() {
2496 return MeasureUnit(23, 37);
2497}
2498
2499MeasureUnit *MeasureUnit::createQuartImperial(UErrorCode &status) {
2500 return MeasureUnit::create(23, 38, status);
2501}
2502
2503MeasureUnit MeasureUnit::getQuartImperial() {
2504 return MeasureUnit(23, 38);
2505}
2506
2507MeasureUnit *MeasureUnit::createSai(UErrorCode &status) {
2508 return MeasureUnit::create(23, 39, status);
2509}
2510
2511MeasureUnit MeasureUnit::getSai() {
2512 return MeasureUnit(23, 39);
2513}
2514
2515MeasureUnit *MeasureUnit::createShaku(UErrorCode &status) {
2516 return MeasureUnit::create(23, 40, status);
2517}
2518
2519MeasureUnit MeasureUnit::getShaku() {
2520 return MeasureUnit(23, 40);
2521}
2522
2523MeasureUnit *MeasureUnit::createTablespoon(UErrorCode &status) {
2524 return MeasureUnit::create(23, 41, status);
2525}
2526
2527MeasureUnit MeasureUnit::getTablespoon() {
2528 return MeasureUnit(23, 41);
2529}
2530
2531MeasureUnit *MeasureUnit::createTeaspoon(UErrorCode &status) {
2532 return MeasureUnit::create(23, 42, status);
2533}
2534
2535MeasureUnit MeasureUnit::getTeaspoon() {
2536 return MeasureUnit(23, 42);
2537}
2538
2539MeasureUnit *MeasureUnit::createToJp(UErrorCode &status) {
2540 return MeasureUnit::create(23, 43, status);
2541}
2542
2543MeasureUnit MeasureUnit::getToJp() {
2544 return MeasureUnit(23, 43);
2545}
2546
2547// End generated code for measunit.cpp
2548
2549static int32_t binarySearch(
2550 const char * const * array, int32_t start, int32_t end, StringPiece key) {
2551 while (start < end) {
2552 int32_t mid = (start + end) / 2;
2553 int32_t cmp = StringPiece(array[mid]).compare(key);
2554 if (cmp < 0) {
2555 start = mid + 1;
2556 continue;
2557 }
2558 if (cmp == 0) {
2559 return mid;
2560 }
2561 end = mid;
2562 }
2563 return -1;
2564}
2565
2566MeasureUnit::MeasureUnit() : MeasureUnit(kBaseTypeIdx, kBaseSubTypeIdx) {
2567}
2568
2569MeasureUnit::MeasureUnit(int32_t typeId, int32_t subTypeId)
2570 : fImpl(nullptr), fSubTypeId(subTypeId), fTypeId(typeId) {
2571}
2572
2573MeasureUnit::MeasureUnit(const MeasureUnit &other)
2574 : fImpl(nullptr) {
2575 *this = other;
2576}
2577
2578MeasureUnit::MeasureUnit(MeasureUnit &&other) noexcept
2579 : fImpl(other.fImpl),
2580 fSubTypeId(other.fSubTypeId),
2581 fTypeId(other.fTypeId) {
2582 other.fImpl = nullptr;
2583}
2584
2585MeasureUnit::MeasureUnit(MeasureUnitImpl&& impl)
2586 : fImpl(nullptr), fSubTypeId(-1), fTypeId(-1) {
2587 if (!findBySubType(impl.identifier.data(), this)) {
2588 fImpl = new MeasureUnitImpl(std::move(impl));
2589 }
2590}
2591
2592MeasureUnit &MeasureUnit::operator=(const MeasureUnit &other) {
2593 if (this == &other) {
2594 return *this;
2595 }
2596 delete fImpl;
2597 if (other.fImpl) {
2598 ErrorCode localStatus;
2599 fImpl = new MeasureUnitImpl(other.fImpl->copy(localStatus));
2600 if (!fImpl || localStatus.isFailure()) {
2601 // Unrecoverable allocation error; set to the default unit
2602 *this = MeasureUnit();
2603 return *this;
2604 }
2605 } else {
2606 fImpl = nullptr;
2607 }
2608 fTypeId = other.fTypeId;
2609 fSubTypeId = other.fSubTypeId;
2610 return *this;
2611}
2612
2613MeasureUnit &MeasureUnit::operator=(MeasureUnit &&other) noexcept {
2614 if (this == &other) {
2615 return *this;
2616 }
2617 delete fImpl;
2618 fImpl = other.fImpl;
2619 other.fImpl = nullptr;
2620 fTypeId = other.fTypeId;
2621 fSubTypeId = other.fSubTypeId;
2622 return *this;
2623}
2624
2625MeasureUnit *MeasureUnit::clone() const {
2626 return new MeasureUnit(*this);
2627}
2628
2629MeasureUnit::~MeasureUnit() {
2630 if (fImpl != nullptr) {
2631 delete fImpl;
2632 fImpl = nullptr;
2633 }
2634}
2635
2636const char *MeasureUnit::getType() const {
2637 // We have a type & subtype only if fTypeId is present.
2638 if (fTypeId == -1) {
2639 return "";
2640 }
2641 return gTypes[fTypeId];
2642}
2643
2644const char *MeasureUnit::getSubtype() const {
2645 // We have a type & subtype only if fTypeId is present.
2646 if (fTypeId == -1) {
1
Assuming the condition is false
2
Taking false branch
2647 return "";
2648 }
2649 return getIdentifier();
3
Calling 'MeasureUnit::getIdentifier'
2650}
2651
2652const char *MeasureUnit::getIdentifier() const {
2653 return fImpl ? fImpl->identifier.data() : gSubTypes[getOffset()];
4
Assuming field 'fImpl' is null
5
'?' condition is false
6
Calling 'MeasureUnit::getOffset'
9
Returning from 'MeasureUnit::getOffset'
10
Undefined or garbage value returned to caller
2654}
2655
2656bool MeasureUnit::operator==(const UObject& other) const {
2657 if (this == &other) { // Same object, equal
2658 return true;
2659 }
2660 if (typeid(*this) != typeid(other)) { // Different types, not equal
2661 return false;
2662 }
2663 const MeasureUnit &rhs = static_cast<const MeasureUnit&>(other);
2664 return uprv_strcmp(getIdentifier(), rhs.getIdentifier()):: strcmp(getIdentifier(), rhs.getIdentifier()) == 0;
2665}
2666
2667int32_t MeasureUnit::getAvailable(
2668 MeasureUnit *dest,
2669 int32_t destCapacity,
2670 UErrorCode &errorCode) {
2671 if (U_FAILURE(errorCode)) {
2672 return 0;
2673 }
2674 if (destCapacity < UPRV_LENGTHOF(gSubTypes)(int32_t)(sizeof(gSubTypes)/sizeof((gSubTypes)[0]))) {
2675 errorCode = U_BUFFER_OVERFLOW_ERROR;
2676 return UPRV_LENGTHOF(gSubTypes)(int32_t)(sizeof(gSubTypes)/sizeof((gSubTypes)[0]));
2677 }
2678 int32_t idx = 0;
2679 for (int32_t typeIdx = 0; typeIdx < UPRV_LENGTHOF(gTypes)(int32_t)(sizeof(gTypes)/sizeof((gTypes)[0])); ++typeIdx) {
2680 int32_t len = gOffsets[typeIdx + 1] - gOffsets[typeIdx];
2681 for (int32_t subTypeIdx = 0; subTypeIdx < len; ++subTypeIdx) {
2682 dest[idx].setTo(typeIdx, subTypeIdx);
2683 ++idx;
2684 }
2685 }
2686 U_ASSERT(idx == UPRV_LENGTHOF(gSubTypes))(static_cast <bool> (idx == (int32_t)(sizeof(gSubTypes)
/sizeof((gSubTypes)[0]))) ? void (0) : __assert_fail ("idx == (int32_t)(sizeof(gSubTypes)/sizeof((gSubTypes)[0]))"
, __builtin_FILE (), __builtin_LINE (), __extension__ __PRETTY_FUNCTION__
))
;
2687 return UPRV_LENGTHOF(gSubTypes)(int32_t)(sizeof(gSubTypes)/sizeof((gSubTypes)[0]));
2688}
2689
2690int32_t MeasureUnit::getAvailable(
2691 const char *type,
2692 MeasureUnit *dest,
2693 int32_t destCapacity,
2694 UErrorCode &errorCode) {
2695 if (U_FAILURE(errorCode)) {
2696 return 0;
2697 }
2698 int32_t typeIdx = binarySearch(gTypes, 0, UPRV_LENGTHOF(gTypes)(int32_t)(sizeof(gTypes)/sizeof((gTypes)[0])), type);
2699 if (typeIdx == -1) {
2700 return 0;
2701 }
2702 int32_t len = gOffsets[typeIdx + 1] - gOffsets[typeIdx];
2703 if (destCapacity < len) {
2704 errorCode = U_BUFFER_OVERFLOW_ERROR;
2705 return len;
2706 }
2707 for (int subTypeIdx = 0; subTypeIdx < len; ++subTypeIdx) {
2708 dest[subTypeIdx].setTo(typeIdx, subTypeIdx);
2709 }
2710 return len;
2711}
2712
2713StringEnumeration* MeasureUnit::getAvailableTypes(UErrorCode &errorCode) {
2714 UEnumeration *uenum = uenum_openCharStringsEnumeration(
2715 gTypes, UPRV_LENGTHOF(gTypes)(int32_t)(sizeof(gTypes)/sizeof((gTypes)[0])), &errorCode);
2716 if (U_FAILURE(errorCode)) {
2717 uenum_close(uenum);
2718 return nullptr;
2719 }
2720 StringEnumeration *result = new UStringEnumeration(uenum);
2721 if (result == nullptr) {
2722 errorCode = U_MEMORY_ALLOCATION_ERROR;
2723 uenum_close(uenum);
2724 return nullptr;
2725 }
2726 return result;
2727}
2728
2729bool MeasureUnit::findBySubType(StringPiece subType, MeasureUnit* output) {
2730 // Sanity checking kCurrencyOffset and final entry in gOffsets
2731 U_ASSERT(uprv_strcmp(gTypes[kCurrencyOffset], "currency") == 0)(static_cast <bool> (:: strcmp(gTypes[kCurrencyOffset],
"currency") == 0) ? void (0) : __assert_fail (":: strcmp(gTypes[kCurrencyOffset], \"currency\") == 0"
, __builtin_FILE (), __builtin_LINE (), __extension__ __PRETTY_FUNCTION__
))
;
2732 U_ASSERT(gOffsets[UPRV_LENGTHOF(gOffsets) - 1] == UPRV_LENGTHOF(gSubTypes))(static_cast <bool> (gOffsets[(int32_t)(sizeof(gOffsets
)/sizeof((gOffsets)[0])) - 1] == (int32_t)(sizeof(gSubTypes)/
sizeof((gSubTypes)[0]))) ? void (0) : __assert_fail ("gOffsets[(int32_t)(sizeof(gOffsets)/sizeof((gOffsets)[0])) - 1] == (int32_t)(sizeof(gSubTypes)/sizeof((gSubTypes)[0]))"
, __builtin_FILE (), __builtin_LINE (), __extension__ __PRETTY_FUNCTION__
))
;
2733
2734 for (int32_t t = 0; t < UPRV_LENGTHOF(gOffsets)(int32_t)(sizeof(gOffsets)/sizeof((gOffsets)[0])) - 1; t++) {
2735 // Skip currency units
2736 if (t == kCurrencyOffset) {
2737 continue;
2738 }
2739 int32_t st = binarySearch(gSubTypes, gOffsets[t], gOffsets[t + 1], subType);
2740 if (st >= 0) {
2741 output->setTo(t, st - gOffsets[t]);
2742 return true;
2743 }
2744 }
2745 return false;
2746}
2747
2748MeasureUnit *MeasureUnit::create(int typeId, int subTypeId, UErrorCode &status) {
2749 if (U_FAILURE(status)) {
2750 return nullptr;
2751 }
2752 MeasureUnit *result = new MeasureUnit(typeId, subTypeId);
2753 if (result == nullptr) {
2754 status = U_MEMORY_ALLOCATION_ERROR;
2755 }
2756 return result;
2757}
2758
2759void MeasureUnit::initTime(const char *timeId) {
2760 int32_t result = binarySearch(gTypes, 0, UPRV_LENGTHOF(gTypes)(int32_t)(sizeof(gTypes)/sizeof((gTypes)[0])), "duration");
2761 U_ASSERT(result != -1)(static_cast <bool> (result != -1) ? void (0) : __assert_fail
("result != -1", __builtin_FILE (), __builtin_LINE (), __extension__
__PRETTY_FUNCTION__))
;
2762 fTypeId = result;
2763 result = binarySearch(gSubTypes, gOffsets[fTypeId], gOffsets[fTypeId + 1], timeId);
2764 U_ASSERT(result != -1)(static_cast <bool> (result != -1) ? void (0) : __assert_fail
("result != -1", __builtin_FILE (), __builtin_LINE (), __extension__
__PRETTY_FUNCTION__))
;
2765 fSubTypeId = result - gOffsets[fTypeId];
2766}
2767
2768void MeasureUnit::initCurrency(StringPiece isoCurrency) {
2769 int32_t result = binarySearch(gTypes, 0, UPRV_LENGTHOF(gTypes)(int32_t)(sizeof(gTypes)/sizeof((gTypes)[0])), "currency");
2770 U_ASSERT(result != -1)(static_cast <bool> (result != -1) ? void (0) : __assert_fail
("result != -1", __builtin_FILE (), __builtin_LINE (), __extension__
__PRETTY_FUNCTION__))
;
2771 fTypeId = result;
2772 result = binarySearch(
2773 gSubTypes, gOffsets[fTypeId], gOffsets[fTypeId + 1], isoCurrency);
2774 if (result == -1) {
2775 UErrorCode status = U_ZERO_ERROR;
2776 fImpl = new MeasureUnitImpl(MeasureUnitImpl::forCurrencyCode(isoCurrency, status));
2777 if (fImpl != nullptr) {
2778 if (U_SUCCESS(status)) {
2779 fSubTypeId = -1;
2780 return;
2781 } else {
2782 delete fImpl;
2783 fImpl = nullptr;
2784 }
2785 }
2786 // malloc error: fall back to the undefined currency
2787 result = binarySearch(
2788 gSubTypes, gOffsets[fTypeId], gOffsets[fTypeId + 1], kDefaultCurrency8);
2789 U_ASSERT(result != -1)(static_cast <bool> (result != -1) ? void (0) : __assert_fail
("result != -1", __builtin_FILE (), __builtin_LINE (), __extension__
__PRETTY_FUNCTION__))
;
2790 }
2791 fSubTypeId = result - gOffsets[fTypeId];
2792}
2793
2794void MeasureUnit::setTo(int32_t typeId, int32_t subTypeId) {
2795 fTypeId = typeId;
2796 fSubTypeId = subTypeId;
2797 if (fImpl != nullptr) {
2798 delete fImpl;
2799 fImpl = nullptr;
2800 }
2801}
2802
2803int32_t MeasureUnit::getOffset() const {
2804 if (fTypeId < 0 || fSubTypeId < 0) {
7
Assuming field 'fTypeId' is < 0
2805 return -1;
8
Returning the value -1
2806 }
2807 return gOffsets[fTypeId] + fSubTypeId;
2808}
2809
2810MeasureUnitImpl MeasureUnitImpl::copy(UErrorCode &status) const {
2811 MeasureUnitImpl result;
2812 result.complexity = complexity;
2813 result.identifier = identifier;
2814 if (result.identifier.isEmpty() != identifier.isEmpty()) {
2815 status = U_MEMORY_ALLOCATION_ERROR;
2816 return result;
2817 }
2818 result.constantDenominator = constantDenominator;
2819 for (int32_t i = 0; i < singleUnits.length(); i++) {
2820 SingleUnitImpl *item = result.singleUnits.emplaceBack(*singleUnits[i]);
2821 if (!item) {
2822 status = U_MEMORY_ALLOCATION_ERROR;
2823 return result;
2824 }
2825 }
2826 return result;
2827}
2828
2829U_NAMESPACE_END}
2830
2831#endif /* !UNCONFIG_NO_FORMATTING */