@@ -627,49 +627,50 @@ auto parser::apply_type_meta_functions( declaration_node& n )
627
627
// For each metafunction, apply it
628
628
for (auto & meta : n.meta_functions )
629
629
{
630
- rtype.set_meta_function_name ( meta->to_string () );
630
+ auto name = meta->to_string ();
631
+ rtype.set_meta_function_name ( name );
631
632
632
- if (meta-> to_string () == " interface" ) {
633
+ if (name == " interface" ) {
633
634
interface ( rtype );
634
635
}
635
- else if (meta-> to_string () == " polymorphic_base" ) {
636
+ else if (name == " polymorphic_base" ) {
636
637
polymorphic_base ( rtype );
637
638
}
638
- else if (meta-> to_string () == " ordered" ) {
639
+ else if (name == " ordered" ) {
639
640
ordered ( rtype );
640
641
}
641
- else if (meta-> to_string () == " weakly_ordered" ) {
642
+ else if (name == " weakly_ordered" ) {
642
643
weakly_ordered ( rtype );
643
644
}
644
- else if (meta-> to_string () == " partially_ordered" ) {
645
+ else if (name == " partially_ordered" ) {
645
646
partially_ordered ( rtype );
646
647
}
647
- else if (meta-> to_string () == " copyable" ) {
648
+ else if (name == " copyable" ) {
648
649
copyable ( rtype );
649
650
}
650
- else if (meta-> to_string () == " basic_value" ) {
651
+ else if (name == " basic_value" ) {
651
652
basic_value ( rtype );
652
653
}
653
- else if (meta-> to_string () == " value" ) {
654
+ else if (name == " value" ) {
654
655
value ( rtype );
655
656
}
656
- else if (meta-> to_string () == " weakly_ordered_value" ) {
657
+ else if (name == " weakly_ordered_value" ) {
657
658
weakly_ordered_value ( rtype );
658
659
}
659
- else if (meta-> to_string () == " partially_ordered_value" ) {
660
+ else if (name == " partially_ordered_value" ) {
660
661
partially_ordered_value ( rtype );
661
662
}
662
- else if (meta-> to_string () == " struct" ) {
663
+ else if (name == " struct" ) {
663
664
cpp2_struct ( rtype );
664
665
}
665
- else if (meta-> to_string () == " enum" ) {
666
+ else if (name == " enum" ) {
666
667
cpp2_enum ( rtype );
667
668
}
668
- else if (meta-> to_string () == " flag_enum" ) {
669
+ else if (name == " flag_enum" ) {
669
670
flag_enum ( rtype );
670
671
}
671
672
else {
672
- error ( " (temporary alpha limitation) unrecognized metafunction name '" + meta-> to_string () + " ' - currently the supported names are: interface, polymorphic_base, ordered, weakly_ordered, partially_ordered, copyable, basic_value, value, weakly_ordered_value, partially_ordered_value, struct, enum, flag_enum" );
673
+ error ( " (temporary alpha limitation) unrecognized metafunction name '" + name + " ' - currently the supported names are: interface, polymorphic_base, ordered, weakly_ordered, partially_ordered, copyable, basic_value, value, weakly_ordered_value, partially_ordered_value, struct, enum, flag_enum" );
673
674
return false ;
674
675
}
675
676
}
0 commit comments