GCC 制作的不可拆卸符号

un-demanglable symbol made by GCC

我在 Factorio 的二进制文件中发现了以下符号,并发现通过 C++filt 传递它无法分解它,这可能发生的可能原因是什么?

使用objdump完成,检测到的编译器版本是4.8.4。

_ZN9MplVectorIJ13PrototypeListI20CustomInputPrototypeES0_I22EquipmentGridPrototypeES0_I13ItemPrototypeES0_I13TilePrototypeES0_I19DecorativePrototypeES0_I19TechnologyPrototypeES0_I15EntityPrototypeES0_I14RecipeCategoryES0_I12ItemSubGroupES0_I9ItemGroupES0_I14FluidPrototypeES0_I22VirtualSignalPrototypeES0_I12AmmoCategoryES0_I12RailCategoryES0_I12FuelCategoryES0_I16ResourceCategoryES0_I18EquipmentPrototypeES0_I10NoiseLayerES0_I16AutoplaceControlES0_I10DamageTypeE19RecipePrototypeListS0_I20AchievementPrototypeES0_I14ModuleCategoryES0_I17EquipmentCategoryES0_I19ModSettingPrototypeEEE11forEachImplIZNK3Map4saveER13MapSerialiserP16ProgressObserverEUlT_E0_S2_JS4_S6_S8_SA_SC_SE_SG_SI_SK_SM_SO_SQ_SS_SU_SW_SY_S10_S12_S14_S15_S17_S19_S1B_S1D_EEEvOS1L_+0x1fac

在符号的开头添加一个额外的 _,它将正确地分解。太荒谬了,我不会在这里重现整个输出,但它开始于:

void MplVector<
    PrototypeList<CustomInputPrototype>,
    PrototypeList<EquipmentGridPrototype>,