$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r61497 - in trunk: boost/iostreams/detail libs/iostreams/test
From: daniel_james_at_[hidden]
Date: 2010-04-22 18:51:24
Author: danieljames
Date: 2010-04-22 18:51:24 EDT (Thu, 22 Apr 2010)
New Revision: 61497
URL: http://svn.boost.org/trac/boost/changeset/61497
Log:
Only support the templated constructor for types with an
'external_string_type' member. Refs #4135.
Using SFINAE, I might add a workaround for compilers that don't support
it, although I'm not sure if there are any that Iostreams supports.
Text files modified: 
   trunk/boost/iostreams/detail/path.hpp          |     2 +-                                      
   trunk/libs/iostreams/test/mapped_file_test.cpp |    17 +++++++++++++++++                       
   2 files changed, 18 insertions(+), 1 deletions(-)
Modified: trunk/boost/iostreams/detail/path.hpp
==============================================================================
--- trunk/boost/iostreams/detail/path.hpp	(original)
+++ trunk/boost/iostreams/detail/path.hpp	2010-04-22 18:51:24 EDT (Thu, 22 Apr 2010)
@@ -48,7 +48,7 @@
 
     // Constructor taking a boost::filesystem::path or boost::filesystem::wpath
     template<typename Path>
-    explicit path(const Path& p)
+    explicit path(const Path& p, typename Path::external_string_type* = 0)
     {
         typedef typename Path::external_string_type string_type;
         init(p, boost::type<string_type>());
Modified: trunk/libs/iostreams/test/mapped_file_test.cpp
==============================================================================
--- trunk/libs/iostreams/test/mapped_file_test.cpp	(original)
+++ trunk/libs/iostreams/test/mapped_file_test.cpp	2010-04-22 18:51:24 EDT (Thu, 22 Apr 2010)
@@ -283,6 +283,23 @@
             "done reopening private mapped_file"
         );
     }
+
+    //-------------Check creating opening mapped_file with char*-------------//
+    
+    {
+        boost::iostreams::test::test_file orig;
+        char name[50];
+        std::strcpy(name, orig.name().c_str());
+        
+        mapped_file mf((char*) name);
+
+        BOOST_CHECK_MESSAGE(
+            boost::iostreams::test::test_writeable(mf),
+            "failed seeking within private mapped_file"
+        );
+
+        mf.close();
+    }
 }
 
 #if BOOST_WORKAROUND(BOOST_MSVC, < 1300)