mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-10 17:58:20 +00:00
Respect tokens in macro string concatenation
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -7,10 +7,10 @@
|
||||
#include <boost/algorithm/string/case_conv.hpp>
|
||||
|
||||
#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,))) { \
|
||||
|
||||
@@ -5,10 +5,10 @@
|
||||
#include <boost/algorithm/string/case_conv.hpp>
|
||||
|
||||
#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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user