diff --git a/src/ifcgeomserver/IfcGeomServer.cpp b/src/ifcgeomserver/IfcGeomServer.cpp index 16e0f95d3a..aa715d62fc 100644 --- a/src/ifcgeomserver/IfcGeomServer.cpp +++ b/src/ifcgeomserver/IfcGeomServer.cpp @@ -46,11 +46,17 @@ using namespace boost; +template +union data_field { + char buffer[sizeof(T)]; + T value; +}; + template T sread(std::istream& s) { - char buf[sizeof(T)]; - s.read(buf, sizeof(T)); - return *((T*)buf); + data_field data; + s.read(data.buffer, sizeof(T)); + return data.value; } template <>