From 2a1aa9663b3e0c60bc7bf74fa345dde5bcc458b0 Mon Sep 17 00:00:00 2001 From: Arseny Kapoulkine Date: Fri, 22 May 2015 18:05:30 -0700 Subject: Fix MSVC7 compilation Work around a name lookup bug by pulling auto_deleter name in the local scope. We could also move auto_deleter to pugi:: namespace, but that pollutes it unnecessarily for other compilers. --- src/pugixml.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/pugixml.cpp b/src/pugixml.cpp index e38f057..15dcd01 100644 --- a/src/pugixml.cpp +++ b/src/pugixml.cpp @@ -6833,7 +6833,8 @@ namespace pugi { reset(); - impl::auto_deleter file(fopen(path_, "rb"), fclose); + using impl::auto_deleter; // MSVC7 workaround + auto_deleter file(fopen(path_, "rb"), fclose); return impl::load_file_impl(*this, file.data, options, encoding); } @@ -6842,7 +6843,8 @@ namespace pugi { reset(); - impl::auto_deleter file(impl::open_file_wide(path_, L"rb"), fclose); + using impl::auto_deleter; // MSVC7 workaround + auto_deleter file(impl::open_file_wide(path_, L"rb"), fclose); return impl::load_file_impl(*this, file.data, options, encoding); } @@ -6914,14 +6916,16 @@ namespace pugi PUGI__FN bool xml_document::save_file(const char* path_, const char_t* indent, unsigned int flags, xml_encoding encoding) const { - impl::auto_deleter file(fopen(path_, (flags & format_save_file_text) ? "w" : "wb"), fclose); + using impl::auto_deleter; // MSVC7 workaround + auto_deleter file(fopen(path_, (flags & format_save_file_text) ? "w" : "wb"), fclose); return impl::save_file_impl(*this, file.data, indent, flags, encoding); } PUGI__FN bool xml_document::save_file(const wchar_t* path_, const char_t* indent, unsigned int flags, xml_encoding encoding) const { - impl::auto_deleter file(impl::open_file_wide(path_, (flags & format_save_file_text) ? L"w" : L"wb"), fclose); + using impl::auto_deleter; // MSVC7 workaround + auto_deleter file(impl::open_file_wide(path_, (flags & format_save_file_text) ? L"w" : L"wb"), fclose); return impl::save_file_impl(*this, file.data, indent, flags, encoding); } @@ -12197,7 +12201,8 @@ namespace pugi } else { - impl::auto_deleter impl(qimpl, impl::xpath_query_impl::destroy); + using impl::auto_deleter; // MSVC7 workaround + auto_deleter impl(qimpl, impl::xpath_query_impl::destroy); qimpl->root = impl::xpath_parser::parse(query, variables, &qimpl->alloc, &_result); -- cgit v1.2.3