$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r86388 - trunk/boost/detail
From: antoshkka_at_[hidden]
Date: 2013-10-22 05:07:02
Author: apolukhin
Date: 2013-10-22 05:07:02 EDT (Tue, 22 Oct 2013)
New Revision: 86388
URL: http://svn.boost.org/trac/boost/changeset/86388
Log:
Another attempt to suppress MSVC warnings (refs #9271)
Text files modified: 
   trunk/boost/detail/basic_pointerbuf.hpp |    20 +++++++-------------                    
   1 files changed, 7 insertions(+), 13 deletions(-)
Modified: trunk/boost/detail/basic_pointerbuf.hpp
==============================================================================
--- trunk/boost/detail/basic_pointerbuf.hpp	Mon Oct 21 20:10:55 2013	(r86387)
+++ trunk/boost/detail/basic_pointerbuf.hpp	2013-10-22 05:07:02 EDT (Tue, 22 Oct 2013)	(r86388)
@@ -23,12 +23,6 @@
 
 namespace boost { namespace detail {
 
-#ifdef BOOST_MSVC
-#pragma warning(push) 
-// VC mistakenly assumes that `setbuf` and other functions are not referenced.
-#pragma warning(disable: 4505) //Unreferenced local function has been removed
-#endif
-
 //
 // class basic_pointerbuf:
 // acts as a stream buffer which wraps around a pair of pointers:
@@ -57,9 +51,13 @@
 #endif
 
 protected:
-   base_type* setbuf(char_type* s, streamsize n);
-   typename this_type::pos_type seekpos(pos_type sp, ::std::ios_base::openmode which);
-   typename this_type::pos_type seekoff(off_type off, ::std::ios_base::seekdir way, ::std::ios_base::openmode which);
+   // VC mistakenly assumes that `setbuf` and other functions are not referenced.
+   // Marking those functions with `inline` suppresses the warnings.
+   // There must be no harm from marking virtual functions as inline: inline virtual
+   // call can be inlined ONLY when the compiler knows the "exact class".
+   inline base_type* setbuf(char_type* s, streamsize n);
+   inline typename this_type::pos_type seekpos(pos_type sp, ::std::ios_base::openmode which);
+   inline typename this_type::pos_type seekoff(off_type off, ::std::ios_base::seekdir way, ::std::ios_base::openmode which);
 
 private:
    basic_pointerbuf& operator=(const basic_pointerbuf&);
@@ -135,10 +133,6 @@
    return pos_type(off_type(-1));
 }
 
-#ifdef BOOST_MSVC
-#pragma warning(pop)
-#endif
-
 }} // namespace boost::detail
 
 #endif // BOOST_DETAIL_BASIC_POINTERBUF_HPP