From 205ff0914cfbc123fc70420e821a1cca6ea00b82 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Mon, 18 Jul 2022 09:23:59 +0200 Subject: [PATCH] Respect tokens in macro string concatenation --- src/ifcgeom_schema_agnostic/IteratorImplementation.cpp | 4 ++-- src/ifcgeom_schema_agnostic/Kernel.cpp | 4 ++-- src/ifcgeom_schema_agnostic/Serialization.cpp | 4 ++-- src/serializers/XmlSerializer.cpp | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/ifcgeom_schema_agnostic/IteratorImplementation.cpp b/src/ifcgeom_schema_agnostic/IteratorImplementation.cpp index 2333ade00f..ad94ad063c 100644 --- a/src/ifcgeom_schema_agnostic/IteratorImplementation.cpp +++ b/src/ifcgeom_schema_agnostic/IteratorImplementation.cpp @@ -8,13 +8,13 @@ // - extern void init_IteratorImplementation_Ifc2x3(IteratorFactoryImplementation*); // - ... #define EXTERNAL_DEFS(r, data, elem) \ - BOOST_PP_CAT(BOOST_PP_CAT(extern void init_IteratorImplementation_, elem), (IteratorFactoryImplementation*);) + extern void BOOST_PP_CAT(init_IteratorImplementation_, elem)(IteratorFactoryImplementation*); // Declares the schema-based external iterator initialization routines: // - init_IteratorImplementation_Ifc2x3(this); // - ... #define CALL_DEFS(r, data, elem) \ - BOOST_PP_CAT(BOOST_PP_CAT(init_IteratorImplementation_, elem), (this);) + BOOST_PP_CAT(init_IteratorImplementation_, elem)(this); IFC_GEOM_API IteratorFactoryImplementation& iterator_implementations() { static IteratorFactoryImplementation impl; diff --git a/src/ifcgeom_schema_agnostic/Kernel.cpp b/src/ifcgeom_schema_agnostic/Kernel.cpp index fdea7a5d75..4eeb0bf874 100644 --- a/src/ifcgeom_schema_agnostic/Kernel.cpp +++ b/src/ifcgeom_schema_agnostic/Kernel.cpp @@ -55,13 +55,13 @@ IfcGeom::impl::KernelFactoryImplementation& IfcGeom::impl::kernel_implementation // - extern void init_KernelImplementation_Ifc2x3(IfcGeom::impl::KernelFactoryImplementation*); // - ... #define EXTERNAL_DEFS(r, data, elem) \ - BOOST_PP_CAT(BOOST_PP_CAT(extern void init_KernelImplementation_, elem), (IfcGeom::impl::KernelFactoryImplementation*);) + extern void BOOST_PP_CAT(init_KernelImplementation_, elem)(IfcGeom::impl::KernelFactoryImplementation*); // Declares the schema-based external iterator initialization routines: // - init_IteratorImplementation_Ifc2x3(this); // - ... #define CALL_DEFS(r, data, elem) \ - BOOST_PP_CAT(BOOST_PP_CAT(init_KernelImplementation_, elem), (this);) + BOOST_PP_CAT(init_KernelImplementation_, elem)(this); BOOST_PP_SEQ_FOR_EACH(EXTERNAL_DEFS, , SCHEMA_SEQ) diff --git a/src/ifcgeom_schema_agnostic/Serialization.cpp b/src/ifcgeom_schema_agnostic/Serialization.cpp index 522b3eace8..e3eea14db8 100644 --- a/src/ifcgeom_schema_agnostic/Serialization.cpp +++ b/src/ifcgeom_schema_agnostic/Serialization.cpp @@ -7,10 +7,10 @@ #include #define EXTERNAL_DEFS_1(r, data, elem) \ - BOOST_PP_CAT(BOOST_PP_CAT(IfcUtil::IfcBaseClass* tesselate_, elem), (const TopoDS_Shape& shape, double deflection);) + IfcUtil::IfcBaseClass* BOOST_PP_CAT(tesselate_, elem)(const TopoDS_Shape& shape, double deflection); #define EXTERNAL_DEFS_2(r, data, elem) \ - BOOST_PP_CAT(BOOST_PP_CAT(IfcUtil::IfcBaseClass* serialise_, elem), (const TopoDS_Shape& shape, bool advanced);) + IfcUtil::IfcBaseClass* BOOST_PP_CAT(serialise_, elem)(const TopoDS_Shape& shape, bool advanced); #define CONDITIONAL_CALL(r, data, elem) \ if (schema_name_lower == BOOST_PP_STRINGIZE(BOOST_PP_CAT(elem,))) { \ diff --git a/src/serializers/XmlSerializer.cpp b/src/serializers/XmlSerializer.cpp index 81386fb33e..25ac9b8aeb 100644 --- a/src/serializers/XmlSerializer.cpp +++ b/src/serializers/XmlSerializer.cpp @@ -5,10 +5,10 @@ #include #define EXTERNAL_DEFS(r, data, elem) \ - BOOST_PP_CAT(BOOST_PP_CAT(extern void init_XmlSerializer, elem), (XmlSerializerFactory::Factory*);) + extern void BOOST_PP_CAT(init_XmlSerializer, elem)(XmlSerializerFactory::Factory*); #define CALL_DEFS(r, data, elem) \ - BOOST_PP_CAT(BOOST_PP_CAT(init_XmlSerializer, elem), (this);) + BOOST_PP_CAT(init_XmlSerializer, elem)(this); BOOST_PP_SEQ_FOR_EACH(EXTERNAL_DEFS, , SCHEMA_SEQ)