@@ -310,11 +310,10 @@ extern "C" void c_phone_number_util_normalize_dialable_chars_only(
310310}
311311
312312extern "C" void c_phone_number_util_get_national_significant_number(
313− CxxPhoneNumber const *ptr,
313+ PhoneNumber const *number,
314314 c_string *c_nsn
315315)
316316{
317− auto number = reinterpret_cast<PhoneNumber const *>(ptr);
318317 std::string nsn;
319318 PhoneNumberUtil::GetInstance()->GetNationalSignificantNumber(*number, &nsn);
320319 unmarshal_c_string(nsn, *c_nsn);
@@ -331,25 +330,23 @@ extern "C" void c_phone_number_util_get_country_mobile_token(
331330}
332331
333332extern "C" void c_phone_number_util_format(
334− CxxPhoneNumber const *ptr,
333+ PhoneNumber const *number,
335334 phone_number_format format,
336335 c_string *c_string
337336)
338337{
339− auto number = reinterpret_cast<PhoneNumber const *>(ptr);
340338 std::string string;
341339 PhoneNumberUtil::GetInstance()->Format(*number, marshal_phone_number_format(format), &string);
342340 unmarshal_c_string(string, *c_string);
343341}
344342
345343extern "C" void c_phone_number_util_format_national_number_with_carrier_code(
346− CxxPhoneNumber const *ptr,
344+ PhoneNumber const *number,
347345 char const *c_carrier_code,
348346 size_t c_carrier_code_size,
349347 c_string *c_string
350348)
351349{
352− auto number = reinterpret_cast<PhoneNumber const *>(ptr);
353350 std::string const carrier_code(c_carrier_code, c_carrier_code_size);
354351 std::string string;
355352 PhoneNumberUtil::GetInstance()->FormatNationalNumberWithCarrierCode(*number, carrier_code, &string);
@@ -357,13 +354,12 @@ extern "C" void c_phone_number_util_format_national_number_with_carrier_code(
357354}
358355
359356extern "C" void c_phone_number_util_format_national_number_with_preferred_carrier_code(
360− CxxPhoneNumber const *ptr,
357+ PhoneNumber const *number,
361358 char const *c_carrier_code,
362359 size_t c_carrier_code_size,
363360 c_string *c_string
364361)
365362{
366− auto number = reinterpret_cast<PhoneNumber const *>(ptr);
367363 std::string const carrier_code(c_carrier_code, c_carrier_code_size);
368364 std::string string;
369365 PhoneNumberUtil::GetInstance()->FormatNationalNumberWithPreferredCarrierCode(*number, carrier_code, &string);
@@ -371,14 +367,13 @@ extern "C" void c_phone_number_util_format_national_number_with_preferred_carrie
371367}
372368
373369extern "C" void c_phone_number_util_format_number_for_mobile_dialing(
374− CxxPhoneNumber const *ptr,
370+ PhoneNumber const *number,
375371 char const *c_region,
376372 size_t c_region_size,
377373 int with_formatting,
378374 c_string *c_string
379375)
380376{
381− auto number = reinterpret_cast<PhoneNumber const *>(ptr);
382377 std::string const region(c_region, c_region_size);
383378 std::string string;
384379 PhoneNumberUtil::GetInstance()->FormatNumberForMobileDialing(*number, region, with_formatting, &string);
@@ -386,13 +381,12 @@ extern "C" void c_phone_number_util_format_number_for_mobile_dialing(
386381}
387382
388383extern "C" void c_phone_number_util_format_out_of_country_calling_number(
389− CxxPhoneNumber const *ptr,
384+ PhoneNumber const *number,
390385 char const *c_region,
391386 size_t c_region_size,
392387 c_string *c_string
393388)
394389{
395− auto number = reinterpret_cast<PhoneNumber const *>(ptr);
396390 std::string const region(c_region, c_region_size);
397391 std::string string;
398392 PhoneNumberUtil::GetInstance()->FormatOutOfCountryCallingNumber(*number, region, &string);
@@ -400,13 +394,12 @@ extern "C" void c_phone_number_util_format_out_of_country_calling_number(
400394}
401395
402396extern "C" void c_phone_number_util_format_in_original_format(
403− CxxPhoneNumber const *ptr,
397+ PhoneNumber const *number,
404398 char const *c_region,
405399 size_t c_region_size,
406400 c_string *c_string
407401)
408402{
409− auto number = reinterpret_cast<PhoneNumber const *>(ptr);
410403 std::string const region(c_region, c_region_size);
411404 std::string string;
412405 PhoneNumberUtil::GetInstance()->FormatInOriginalFormat(*number, region, &string);
@@ -414,26 +407,24 @@ extern "C" void c_phone_number_util_format_in_original_format(
414407}
415408
416409extern "C" void c_phone_number_util_format_out_of_country_keeping_alpha_chars(
417− CxxPhoneNumber const *ptr,
410+ PhoneNumber const *number,
418411 char const *c_region,
419412 size_t c_region_size,
420413 c_string *c_string
421414)
422415{
423− auto number = reinterpret_cast<PhoneNumber const *>(ptr);
424416 std::string const region(c_region, c_region_size);
425417 std::string string;
426418 PhoneNumberUtil::GetInstance()->FormatOutOfCountryKeepingAlphaChars(*number, region, &string);
427419 unmarshal_c_string(string, *c_string);
428420}
429421
430−extern "C" CxxPhoneNumber *c_phone_number_util_truncate_too_long_number(CxxPhoneNumber const *ptr)
422+extern "C" PhoneNumber *c_phone_number_util_truncate_too_long_number(PhoneNumber const *input)
431423{
432− auto input = reinterpret_cast<PhoneNumber const *>(ptr);
433424 auto *output = new PhoneNumber(*input);
434425 if (PhoneNumberUtil::GetInstance()->TruncateTooLongNumber(output))
435426 {
436− return reinterpret_cast<CxxPhoneNumber *>(output);
427+ return output;
437428 }
438429 else
439430 {
@@ -442,37 +433,33 @@ extern "C" CxxPhoneNumber *c_phone_number_util_truncate_too_long_number(CxxPhone
442433 }
443434}
444435
445−extern "C" phone_number_type c_phone_number_util_get_number_type(CxxPhoneNumber const *ptr)
436+extern "C" phone_number_type c_phone_number_util_get_number_type(PhoneNumber const *number)
446437{
447− auto number = reinterpret_cast<PhoneNumber const *>(ptr);
448438 return unmarshal_phone_number_type(
449439 PhoneNumberUtil::GetInstance()->GetNumberType(*number)
450440 );
451441}
452442
453−extern "C" int c_phone_number_util_is_valid_number(CxxPhoneNumber const *ptr)
443+extern "C" int c_phone_number_util_is_valid_number(PhoneNumber const *number)
454444{
455− auto number = reinterpret_cast<PhoneNumber const *>(ptr);
456445 return PhoneNumberUtil::GetInstance()->IsValidNumber(*number);
457446}
458447
459448extern "C" int c_phone_number_util_is_valid_number_for_region(
460− CxxPhoneNumber const *ptr,
449+ PhoneNumber const *number,
461450 char const *c_region,
462451 size_t c_region_size
463452)
464453{
465− auto number = reinterpret_cast<PhoneNumber const *>(ptr);
466454 std::string const region(c_region, c_region_size);
467455 return PhoneNumberUtil::GetInstance()->IsValidNumberForRegion(*number, region);
468456}
469457
470458extern "C" void c_phone_number_util_get_region_code_for_number(
471− CxxPhoneNumber const *ptr,
459+ PhoneNumber const *number,
472460 c_string *c_region
473461)
474462{
475− auto number = reinterpret_cast<PhoneNumber const *>(ptr);
476463 std::string region;
477464 PhoneNumberUtil::GetInstance()->GetRegionCodeForNumber(*number, ®ion);
478465 unmarshal_c_string(region, *c_region);
@@ -531,11 +518,10 @@ extern "C" void c_phone_number_util_get_ndd_prefix_for_region(
531518}
532519
533520extern "C" validation_result c_phone_number_util_is_possible_number_for_type_with_reason(
534− CxxPhoneNumber const *ptr,
521+ PhoneNumber const *number,
535522 phone_number_type ntype
536523)
537524{
538− auto number = reinterpret_cast<PhoneNumber const *>(ptr);
539525 return unmarshal_validation_result(
540526 PhoneNumberUtil::GetInstance()->IsPossibleNumberForTypeWithReason(
541527 *number,
@@ -544,15 +530,13 @@ extern "C" validation_result c_phone_number_util_is_possible_number_for_type_wit
544530 );
545531}
546532
547−extern "C" int c_phone_number_util_can_be_internationally_dialed(CxxPhoneNumber const *ptr)
533+extern "C" int c_phone_number_util_can_be_internationally_dialed(PhoneNumber const *number)
548534{
549− auto number = reinterpret_cast<PhoneNumber const *>(ptr);
550535 return PhoneNumberUtil::GetInstance()->CanBeInternationallyDialled(*number);
551536}
552537
553−extern "C" int c_phone_number_util_is_number_geographical_1(CxxPhoneNumber const *ptr)
538+extern "C" int c_phone_number_util_is_number_geographical_1(PhoneNumber const *number)
554539{
555− auto number = reinterpret_cast<PhoneNumber const *>(ptr);
556540 return PhoneNumberUtil::GetInstance()->IsNumberGeographical(*number);
557541}
558542
@@ -572,14 +556,14 @@ extern "C" error_type c_phone_number_util_parse(
572556 size_t c_string_size,
573557 char const *c_region,
574558 size_t c_region_size,
575− CxxPhoneNumber **number
559+ PhoneNumber **number
576560)
577561{
578562 std::string const string(c_string, c_string_size);
579563 std::string const region(c_region, c_region_size);
580− *number = reinterpret_cast<CxxPhoneNumber *>(new PhoneNumber());
564+ *number = new PhoneNumber();
581565 return unmarshal_error_type(
582− PhoneNumberUtil::GetInstance()->Parse(string, region, reinterpret_cast<PhoneNumber *>(*number))
566+ PhoneNumberUtil::GetInstance()->Parse(string, region, *number)
583567 );
584568}
585569
@@ -588,24 +572,22 @@ extern "C" error_type c_phone_number_util_parse_and_keep_raw_input(
588572 size_t c_string_size,
589573 char const *c_region,
590574 size_t c_region_size,
591− CxxPhoneNumber **number
575+ PhoneNumber **number
592576)
593577{
594578 std::string const string(c_string, c_string_size);
595579 std::string const region(c_region, c_region_size);
596− *number = reinterpret_cast<CxxPhoneNumber *>(new PhoneNumber());
580+ *number = new PhoneNumber();
597581 return unmarshal_error_type(
598− PhoneNumberUtil::GetInstance()->ParseAndKeepRawInput(string, region, reinterpret_cast<PhoneNumber *>(*number))
582+ PhoneNumberUtil::GetInstance()->ParseAndKeepRawInput(string, region, *number)
599583 );
600584}
601585
602586extern "C" match_type c_phone_number_util_is_number_match(
603− CxxPhoneNumber const *ptr1,
604− CxxPhoneNumber const *ptr2
587+ PhoneNumber const *number1,
588+ PhoneNumber const *number2
605589)
606590{
607− auto number1 = reinterpret_cast<PhoneNumber const *>(ptr1);
608− auto number2 = reinterpret_cast<PhoneNumber const *>(ptr2);
609591 return unmarshal_match_type(
610592 PhoneNumberUtil::GetInstance()->IsNumberMatch(*number1, *number2)
611593 );
@@ -626,12 +608,11 @@ extern "C" match_type c_phone_number_util_is_number_match_with_two_strings(
626608}
627609
628610extern "C" match_type c_phone_number_util_is_number_match_with_one_string(
629− CxxPhoneNumber const *ptr1,
611+ PhoneNumber const *number1,
630612 char const *c_number2,
631613 size_t c_number2_size
632614)
633615{
634− auto number1 = reinterpret_cast<PhoneNumber const *>(ptr1);
635616 std::string const number2(c_number2, c_number2_size);
636617 return unmarshal_match_type(
637618 PhoneNumberUtil::GetInstance()->IsNumberMatchWithOneString(*number1, number2)