From 8015ea217ecb040b525f843fd701ecab079e84ec Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Wed, 22 May 2019 22:13:12 +0200 Subject: [PATCH] codecvt fallback for g++4.8 --- src/ifcparse/IfcCharacterDecoder.cpp | 20 +++++++++++++++++++- src/ifcparse/IfcCharacterDecoder.h | 1 - 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/ifcparse/IfcCharacterDecoder.cpp b/src/ifcparse/IfcCharacterDecoder.cpp index 24e2dbce00..c0957f7684 100644 --- a/src/ifcparse/IfcCharacterDecoder.cpp +++ b/src/ifcparse/IfcCharacterDecoder.cpp @@ -27,6 +27,13 @@ #include #include #include +#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ < 5 +#include +using boost::locale::conv::utf_to_utf; +#define CODECVT_BOOST_FALLBACK +#else +#include +#endif #include "../ifcparse/IfcCharacterDecoder.h" #include "../ifcparse/IfcException.h" @@ -334,10 +341,21 @@ std::wstring::value_type IfcUtil::convert_codepage(int codepage, int c) { return r; } +#ifdef CODECVT_BOOST_FALLBACK +std::string IfcUtil::convert_utf8(const std::wstring& s) { + return utf_to_utf(s.c_str(), s.c_str() + s.size()); +} + +std::wstring IfcUtil::convert_utf8(const std::string& s) +{ + return utf_to_utf(s.c_str(), s.c_str() + s.size()); +} +#else std::string IfcUtil::convert_utf8(const std::wstring& s) { return std::wstring_convert>().to_bytes(s); } std::wstring IfcUtil::convert_utf8(const std::string& s) { return std::wstring_convert>().from_bytes(s); -} \ No newline at end of file +} +#endif \ No newline at end of file diff --git a/src/ifcparse/IfcCharacterDecoder.h b/src/ifcparse/IfcCharacterDecoder.h index d178099c05..d178bae71d 100644 --- a/src/ifcparse/IfcCharacterDecoder.h +++ b/src/ifcparse/IfcCharacterDecoder.h @@ -29,7 +29,6 @@ #include #include -#include #include "../ifcparse/IfcSpfStream.h"