Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r67896 - in sandbox/gil/boost/gil/extension/io2: . detail
From: dsaritz_at_[hidden]
Date: 2011-01-09 17:53:15


Author: psiha
Date: 2011-01-09 17:53:10 EST (Sun, 09 Jan 2011)
New Revision: 67896
URL: http://svn.boost.org/trac/boost/changeset/67896

Log:
Fixed GCC and Clang compilation errors.
Fixed io_error() declaration.
Minor other cleanup.
Text files modified:
   sandbox/gil/boost/gil/extension/io2/detail/io_error.hpp | 14 +++++++--
   sandbox/gil/boost/gil/extension/io2/detail/libx_shared.hpp | 1
   sandbox/gil/boost/gil/extension/io2/detail/memory_mapping.hpp | 6 ++-
   sandbox/gil/boost/gil/extension/io2/formatted_image.hpp | 37 ++++++++++++------------
   sandbox/gil/boost/gil/extension/io2/gp_image.hpp | 2
   sandbox/gil/boost/gil/extension/io2/libjpeg_image.hpp | 59 ++++++++++++++++++++-------------------
   sandbox/gil/boost/gil/extension/io2/libpng_image.hpp | 10 ++++--
   sandbox/gil/boost/gil/extension/io2/libtiff_image.hpp | 34 +++++++++++++++++-----
   sandbox/gil/boost/gil/extension/io2/wic_image.hpp | 2
   9 files changed, 98 insertions(+), 67 deletions(-)

Modified: sandbox/gil/boost/gil/extension/io2/detail/io_error.hpp
==============================================================================
--- sandbox/gil/boost/gil/extension/io2/detail/io_error.hpp (original)
+++ sandbox/gil/boost/gil/extension/io2/detail/io_error.hpp 2011-01-09 17:53:10 EST (Sun, 09 Jan 2011)
@@ -33,12 +33,20 @@
 {
 //------------------------------------------------------------------------------
 
-inline BF_NOTHROWNOALIAS void io_error( char const * const description )
+inline BF_NORETURN void io_error( char const * const description )
 {
     #ifdef _MSC_VER
- throw_exception( std::exception( description , 0 ) ); // Assumes the description string is static/non-temporary
+ throw_exception( std::exception( description, 0 ) ); // Assumes the description string is static/non-temporary
     #else
- throw_exception( std::exception( description ) );
+ class gil_io_error : public std::exception
+ {
+ public:
+ gil_io_error( char const * const description ) : description_( description ) {}
+ char const * what() const throw() { return description_; }
+ private:
+ char const * const description_;
+ };
+ throw_exception( gil_io_error( description ) );
     #endif // _MSC_VER
 }
 

Modified: sandbox/gil/boost/gil/extension/io2/detail/libx_shared.hpp
==============================================================================
--- sandbox/gil/boost/gil/extension/io2/detail/libx_shared.hpp (original)
+++ sandbox/gil/boost/gil/extension/io2/detail/libx_shared.hpp 2011-01-09 17:53:10 EST (Sun, 09 Jan 2011)
@@ -26,7 +26,6 @@
 #include "boost/assert.hpp"
 #include "boost/noncopyable.hpp"
 
-#include "crtdefs.h"
 #include <cstdio>
 //------------------------------------------------------------------------------
 namespace boost

Modified: sandbox/gil/boost/gil/extension/io2/detail/memory_mapping.hpp
==============================================================================
--- sandbox/gil/boost/gil/extension/io2/detail/memory_mapping.hpp (original)
+++ sandbox/gil/boost/gil/extension/io2/detail/memory_mapping.hpp 2011-01-09 17:53:10 EST (Sun, 09 Jan 2011)
@@ -223,8 +223,10 @@
 
 class memory_mapping
     :
- private writable_memory_chunk_t,
- private boost::noncopyable
+ private writable_memory_chunk_t
+ #ifndef __clang__
+ ,private boost::noncopyable
+ #endif // __clang__
 {
 public:
     memory_mapping

Modified: sandbox/gil/boost/gil/extension/io2/formatted_image.hpp
==============================================================================
--- sandbox/gil/boost/gil/extension/io2/formatted_image.hpp (original)
+++ sandbox/gil/boost/gil/extension/io2/formatted_image.hpp 2011-01-09 17:53:10 EST (Sun, 09 Jan 2011)
@@ -25,6 +25,7 @@
 #include "detail/switch.hpp"
 
 #include "boost/gil/extension/dynamic_image/any_image.hpp"
+#include "boost/gil/extension/io/dynamic_io.hpp" //...zzz...
 #include "boost/gil/packed_pixel.hpp"
 #include "boost/gil/planar_pixel_iterator.hpp"
 #include "boost/gil/planar_pixel_reference.hpp"
@@ -46,6 +47,7 @@
 #include <boost/range/iterator_range.hpp>
 #include <boost/static_assert.hpp>
 #include <boost/type_traits/decay.hpp>
+#include <boost/type_traits/is_unsigned.hpp>
 //------------------------------------------------------------------------------
 namespace boost
 {
@@ -79,7 +81,7 @@
         typedef detail::channel_convert_to_unsigned <SrcChannelV> to_unsigned;
         typedef detail::channel_convert_from_unsigned<DstChannelV> from_unsigned;
 
- if ( std::tr1::is_unsigned<SrcChannelV>::value )
+ if ( is_unsigned<SrcChannelV>::value )
         {
             SrcChannelV const source_max( detail::unsigned_integral_max_value<SrcChannelV>::value );
             unsigned int const tmp ( ( static_cast<unsigned short>( src ) << DestPackedNumBits ) - src );
@@ -502,7 +504,7 @@
         Image & apply()
         {
             image_.move_in( Image() );
- return image_._dynamic_cast<Image>();
+ return image_. BOOST_NESTED_TEMPLATE _dynamic_cast<Image>();
         }
 
     protected:
@@ -520,9 +522,6 @@
 template <class Impl>
 class formatted_image : public formatted_image_base
 {
-private:
- template <typename T> struct get_native_format;
-
 public:
     typedef typename formatted_image_traits<Impl>::format_t format_t;
 
@@ -535,6 +534,8 @@
         : formatted_image_traits<Impl>::gil_to_native_format:: BOOST_NESTED_TEMPLATE apply<PixelType, IsPlanar>::type
     {};
 
+ template <typename T> struct get_native_format;
+
     template <typename PixelType, typename IsPlanar>
     struct get_native_format<mpl::pair<PixelType, IsPlanar> > : native_format<PixelType, IsPlanar::value> {};
 
@@ -595,7 +596,7 @@
>::type first_layer_wrapper;
 
     public:
- typedef typename base_writer_t::wrapper
+ typedef typename base_writer_t:: BOOST_NESTED_TEMPLATE wrapper
         <
             first_layer_wrapper,
             Target,
@@ -604,7 +605,7 @@
> type;
     };
 
- BOOST_STATIC_CONSTANT( bool, has_full_roi = (is_same<roi::offset_t, roi::point_t>::value) );
+ BOOST_STATIC_CONSTANT( bool, has_full_roi = (is_same<typename roi::offset_t, typename roi::point_t>::value) );
 
 protected:
     typedef formatted_image base_t;
@@ -628,7 +629,7 @@
         {}
 
         template <class Image>
- void apply() { impl_.copy_to( base::apply<Image>(), dimensions_policy(), formats_policy() ); }
+ void apply() { impl_.copy_to( base:: BOOST_NESTED_TEMPLATE apply<Image>(), dimensions_policy(), formats_policy() ); }
 
         template <typename SupportedFormatIndex>
         void operator()( SupportedFormatIndex const & ) { apply<typename mpl::at<SupportedFormatIndex>::type>(); }
@@ -709,7 +710,7 @@
     template <typename View>
     bool formats_mismatch() const
     {
- return formats_mismatch( get_native_format<get_original_view_t<View>::type>::value );
+ return formats_mismatch( get_native_format<typename get_original_view_t<View>::type>::value );
     }
 
     bool formats_mismatch( typename formatted_image_traits<Impl>::format_t const other_format ) const
@@ -723,7 +724,7 @@
     template <typename View>
     bool can_do_inplace_transform() const
     {
- return can_do_inplace_transform<View>( format() );
+ return can_do_inplace_transform<View>( impl().format() );
     }
 
     template <typename View>
@@ -822,12 +823,12 @@
     void copy_to( View const & view, assert_dimensions_match, synchronize_formats ) const
     {
         BOOST_ASSERT( !impl().dimensions_mismatch( view ) );
- bool const can_use_raw
- (
- is_supported <View>::value &&
+ typedef mpl::bool_
+ <
+ has_supported_format <View>::value &&
             formatted_image_traits<Impl>::builtin_conversion
- );
- default_convert_to_worker( view, mpl::bool_<can_use_raw>() );
+ > can_use_raw_t;
+ default_convert_to_worker( view, can_use_raw_t() );
     }
     
     template <typename FormatConverter, typename View>
@@ -944,7 +945,7 @@
         }
 
         template <typename SrcP>
- typename enable_if<is_pixel<SrcP>>::type
+ typename enable_if<is_pixel<SrcP> >::type
         operator()( SrcP & srcP )
         {
             convert_aux( srcP, is_planar<View>() );
@@ -994,7 +995,7 @@
         void operator()( mpl::integral_c<std::size_t, index> const & ) const
         {
             typedef typename mpl::at_c<supported_pixel_formats, index>::type::view_t my_view_t;
- impl_.generic_convert_to_prepared_view<my_view_t>( view(), cc() );
+ impl_. BOOST_NESTED_TEMPLATE generic_convert_to_prepared_view<my_view_t>( view(), cc() );
         }
 
         void operator=( generic_converter_t const & other )
@@ -1057,7 +1058,7 @@
             mpl::bool_
             <
                 is_plain_in_memory_view<typename get_original_view_t<View>::type>::value &&
- is_supported < View >::value
+ has_supported_format < View >::value
>()
         );
     }

Modified: sandbox/gil/boost/gil/extension/io2/gp_image.hpp
==============================================================================
--- sandbox/gil/boost/gil/extension/io2/gp_image.hpp (original)
+++ sandbox/gil/boost/gil/extension/io2/gp_image.hpp 2011-01-09 17:53:10 EST (Sun, 09 Jan 2011)
@@ -527,7 +527,7 @@
     ::Gdiplus::GpBitmap const & lib_object() const { return const_cast<gp_image &>( *this ).lib_object(); }
 
 private: // Private formatted_image_base interface.
- friend base_t;
+ friend class base_t;
 
     template <class MyView, class TargetView, class Converter>
     void generic_convert_to_prepared_view( TargetView const & view, Converter const & converter ) const

Modified: sandbox/gil/boost/gil/extension/io2/libjpeg_image.hpp
==============================================================================
--- sandbox/gil/boost/gil/extension/io2/libjpeg_image.hpp (original)
+++ sandbox/gil/boost/gil/extension/io2/libjpeg_image.hpp 2011-01-09 17:53:10 EST (Sun, 09 Jan 2011)
@@ -23,6 +23,7 @@
 #include "detail/shared.hpp"
 
 #include <boost/array.hpp>
+#include <boost/range/size.hpp>
 #include <boost/smart_ptr/scoped_array.hpp>
 
 #define JPEG_INTERNALS
@@ -266,8 +267,8 @@
         setup_compression( view );
 
         #ifndef BOOST_GIL_THROW_THROUGH_C_SUPPORTED
- if ( setjmp( error_handler_target() ) )
- throw_jpeg_error();
+ if ( setjmp( libjpeg_base::error_handler_target() ) )
+ libjpeg_base::throw_jpeg_error();
         #endif // BOOST_GIL_THROW_THROUGH_C_SUPPORTED
         jpeg_set_defaults( &compressor() );
         //jpeg_set_quality( &compressor(), 100, false );
@@ -295,8 +296,8 @@
         BOOST_ASSERT( view.format_ != JCS_UNKNOWN );
 
         #ifndef BOOST_GIL_THROW_THROUGH_C_SUPPORTED
- if ( setjmp( error_handler_target() ) )
- throw_jpeg_error();
+ if ( setjmp( libjpeg_base::error_handler_target() ) )
+ libjpeg_base::throw_jpeg_error();
         #endif // BOOST_GIL_THROW_THROUGH_C_SUPPORTED
         
         jpeg_start_compress( &compressor(), false );
@@ -315,7 +316,7 @@
         BOOST_VERIFY( jpeg_write_scanlines( &compressor(), &p_row, 1 ) == 1 );
     }
 
- static libjpeg_writer & writer( j_compress_ptr const p_cinfo )
+ static libjpeg_writer & get_writer( j_compress_ptr const p_cinfo )
     {
         libjpeg_writer & writer( static_cast<libjpeg_writer &>( base( gil_reinterpret_cast<j_common_ptr>( p_cinfo ) ) ) );
         BOOST_ASSERT( p_cinfo->dest == &writer.destination_manager_ );
@@ -353,7 +354,7 @@
 
     static void __cdecl init_FILE_destination( j_compress_ptr const p_cinfo )
     {
- libjpeg_writer & writer( writer( p_cinfo ) );
+ libjpeg_writer & writer( get_writer( p_cinfo ) );
 
         writer.destination_manager_.next_output_byte = writer.write_buffer_.begin();
         writer.destination_manager_.free_in_buffer = writer.write_buffer_.size ();
@@ -376,7 +377,7 @@
     
     static boolean __cdecl empty_FILE_buffer( j_compress_ptr const p_cinfo )
     {
- libjpeg_writer & writer( writer( p_cinfo ) );
+ libjpeg_writer & writer( get_writer( p_cinfo ) );
         writer.write_FILE_bytes( writer.write_buffer_.size() );
         init_FILE_destination( p_cinfo );
         return true;
@@ -384,7 +385,7 @@
 
     static void __cdecl term_FILE_destination( j_compress_ptr const p_cinfo )
     {
- libjpeg_writer & writer( writer( p_cinfo ) );
+ libjpeg_writer & writer( get_writer( p_cinfo ) );
 
         std::size_t const remaining_bytes( writer.write_buffer_.size() - writer.destination_manager_.free_in_buffer );
 
@@ -395,7 +396,7 @@
     static void __cdecl term_and_close_FILE_destination( j_compress_ptr const p_cinfo )
     {
         term_FILE_destination( p_cinfo );
- BOOST_VERIFY( /*std*/::fclose( static_cast<FILE *>( writer( p_cinfo ).compressor().client_data ) ) == 0 );
+ BOOST_VERIFY( /*std*/::fclose( static_cast<FILE *>( get_writer( p_cinfo ).compressor().client_data ) ) == 0 );
     }
 
 private:
@@ -538,8 +539,8 @@
         libjpeg_base( for_decompressor() )
     {
         #ifndef BOOST_GIL_THROW_THROUGH_C_SUPPORTED
- if ( setjmp( error_handler_target() ) )
- throw_jpeg_error();
+ if ( setjmp( libjpeg_base::error_handler_target() ) )
+ libjpeg_base::throw_jpeg_error();
         #endif // BOOST_GIL_THROW_THROUGH_C_SUPPORTED
 
         setup_source( memory_chunk );
@@ -552,8 +553,8 @@
         libjpeg_base( for_decompressor() )
     {
         #ifndef BOOST_GIL_THROW_THROUGH_C_SUPPORTED
- if ( setjmp( error_handler_target() ) )
- throw_jpeg_error();
+ if ( setjmp( libjpeg_base::error_handler_target() ) )
+ libjpeg_base::throw_jpeg_error();
         #endif // BOOST_GIL_THROW_THROUGH_C_SUPPORTED
 
         setup_source( file );
@@ -562,15 +563,15 @@
     }
 
 private: // Private interface for the base formatted_image<> class.
- friend base_t;
+ friend class base_t;
 
     void raw_convert_to_prepared_view( detail::view_data_t const & view_data ) const throw(...)
     {
         setup_decompression( view_data );
 
         #ifndef BOOST_GIL_THROW_THROUGH_C_SUPPORTED
- if ( setjmp( error_handler_target() ) )
- throw_jpeg_error();
+ if ( setjmp( libjpeg_base::error_handler_target() ) )
+ libjpeg_base::throw_jpeg_error();
         #endif // BOOST_GIL_THROW_THROUGH_C_SUPPORTED
 
         JSAMPROW scanlines[ 4 ] =
@@ -581,7 +582,7 @@
             scanlines[ 2 ] + view_data.stride_
         };
 
- BOOST_ASSERT( _countof( scanlines ) >= decompressor().rec_outbuf_height );
+ BOOST_ASSERT( boost::size( scanlines ) >= decompressor().rec_outbuf_height );
         unsigned int scanlines_to_read( view_data.height_ );
         for ( ; ; )
         {
@@ -591,7 +592,7 @@
                 read_scanlines
                 (
                     scanlines,
- (std::min)( _countof( scanlines ), scanlines_to_read )
+ std::min<std::size_t>( boost::size( scanlines ), scanlines_to_read )
                 )
             );
             scanlines_to_read -= lines_read;
@@ -633,8 +634,8 @@
         BOOST_ASSERT( decompressor().output_components == decompressor().num_components );
         
         #ifndef BOOST_GIL_THROW_THROUGH_C_SUPPORTED
- if ( setjmp( error_handler_target() ) )
- throw_jpeg_error();
+ if ( setjmp( libjpeg_base::error_handler_target() ) )
+ libjpeg_base::throw_jpeg_error();
         #endif // BOOST_GIL_THROW_THROUGH_C_SUPPORTED
 
         unsigned int const scanlines_to_read( detail::original_view( view ).dimensions().y );
@@ -704,8 +705,8 @@
             );
 
             #ifndef BOOST_GIL_THROW_THROUGH_C_SUPPORTED
- if ( setjmp( error_handler_target() ) )
- throw_jpeg_error();
+ if ( setjmp( libjpeg_base::error_handler_target() ) )
+ libjpeg_base::throw_jpeg_error();
             #endif // BOOST_GIL_THROW_THROUGH_C_SUPPORTED
 
             if ( state == DSTATE_SCANNING )
@@ -753,7 +754,7 @@
 
         while ( number_of_rows_to_skip_using_raw )
         {
- unsigned int const lines_to_read( _countof( dummy_component_2d_array ) );
+ unsigned int const lines_to_read( boost::size( dummy_component_2d_array ) );
             read_raw_data( dummy_scan_lines, lines_to_read );
             number_of_rows_to_skip_using_raw -= lines_to_read;
         }
@@ -864,7 +865,7 @@
 
     static void __cdecl init_FILE_source( j_decompress_ptr const p_cinfo )
     {
- libjpeg_image & reader( reader( p_cinfo ) );
+ libjpeg_image & reader( get_reader( p_cinfo ) );
 
         reader.source_manager_.next_input_byte = reader.read_buffer_.begin();
         reader.source_manager_.bytes_in_buffer = 0;
@@ -872,7 +873,7 @@
 
     static boolean __cdecl fill_FILE_buffer( j_decompress_ptr const p_cinfo )
     {
- libjpeg_image & reader( reader( p_cinfo ) );
+ libjpeg_image & reader( get_reader( p_cinfo ) );
 
         std::size_t bytes_read
         (
@@ -903,7 +904,7 @@
 
     static void __cdecl skip_FILE_data( j_decompress_ptr const p_cinfo, long num_bytes )
     {
- libjpeg_image & reader( reader( p_cinfo ) );
+ libjpeg_image & reader( get_reader( p_cinfo ) );
 
         if ( static_cast<std::size_t>( num_bytes ) <= reader.source_manager_.bytes_in_buffer )
         {
@@ -927,7 +928,7 @@
     static void __cdecl term_and_close_FILE_source( j_decompress_ptr const p_cinfo )
     {
         term_FILE_source( p_cinfo );
- BOOST_VERIFY( /*std*/::fclose( static_cast<FILE *>( reader( p_cinfo ).decompressor().client_data ) ) == 0 );
+ BOOST_VERIFY( /*std*/::fclose( static_cast<FILE *>( get_reader( p_cinfo ).decompressor().client_data ) ) == 0 );
     }
 
     static void __cdecl init_memory_chunk_source( j_decompress_ptr /*p_cinfo*/ )
@@ -942,7 +943,7 @@
 
     static void __cdecl skip_memory_chunk_data( j_decompress_ptr const p_cinfo, long num_bytes )
     {
- libjpeg_image & reader( reader( p_cinfo ) );
+ libjpeg_image & reader( get_reader( p_cinfo ) );
 
         BOOST_ASSERT( static_cast<std::size_t>( num_bytes ) <= reader.source_manager_.bytes_in_buffer );
         reader.source_manager_.next_input_byte += num_bytes;
@@ -953,7 +954,7 @@
     {
     }
 
- static libjpeg_image & reader( j_decompress_ptr const p_cinfo )
+ static libjpeg_image & get_reader( j_decompress_ptr const p_cinfo )
     {
         libjpeg_image & reader( static_cast<libjpeg_image &>( base( gil_reinterpret_cast<j_common_ptr>( p_cinfo ) ) ) );
         BOOST_ASSERT( p_cinfo->src == &reader.source_manager_ );

Modified: sandbox/gil/boost/gil/extension/io2/libpng_image.hpp
==============================================================================
--- sandbox/gil/boost/gil/extension/io2/libpng_image.hpp (original)
+++ sandbox/gil/boost/gil/extension/io2/libpng_image.hpp 2011-01-09 17:53:10 EST (Sun, 09 Jan 2011)
@@ -23,6 +23,8 @@
 #include "detail/libx_shared.hpp"
 #include "detail/shared.hpp"
 
+#include "boost/scoped_array.hpp"
+
 #include "png.h"
 
 #ifndef BOOST_GIL_THROW_THROUGH_C_SUPPORTED
@@ -274,8 +276,8 @@
         BOOST_ASSERT( view.format_ != JCS_UNKNOWN );
 
         #ifndef BOOST_GIL_THROW_THROUGH_C_SUPPORTED
- if ( setjmp( error_handler_target() ) )
- throw_jpeg_error();
+ if ( setjmp( libpng_base::error_handler_target() ) )
+ detail::throw_libpng_error();
         #endif // BOOST_GIL_THROW_THROUGH_C_SUPPORTED
 
         if ( little_endian() )
@@ -530,8 +532,8 @@
     {
         using namespace detail;
 
- std::size_t const row_length ( ::png_get_rowbytes( &png_object(), &info_object() ) );
- scoped_ptr<png_byte> const p_row_buffer( new png_byte[ row_length ] );
+ std::size_t const row_length ( ::png_get_rowbytes( &png_object(), &info_object() ) );
+ scoped_array<png_byte> const p_row_buffer( new png_byte[ row_length ] );
 
         #ifndef BOOST_GIL_THROW_THROUGH_C_SUPPORTED
             if ( setjmp( error_handler_target() ) )

Modified: sandbox/gil/boost/gil/extension/io2/libtiff_image.hpp
==============================================================================
--- sandbox/gil/boost/gil/extension/io2/libtiff_image.hpp (original)
+++ sandbox/gil/boost/gil/extension/io2/libtiff_image.hpp 2011-01-09 17:53:10 EST (Sun, 09 Jan 2011)
@@ -39,7 +39,13 @@
 
 #include <cstdio>
 #include <set>
-#include "io.h"
+#ifdef _MSC_VER
+ #include "io.h"
+#else
+ #include "sys/types.h"
+ #include "sys/stat.h"
+ #include "unistd.h"
+#endif // _MSC_VER
 //------------------------------------------------------------------------------
 namespace boost
 {
@@ -185,7 +191,13 @@
 
 inline toff_t FILE_size_proc( thandle_t const fd )
 {
- return /*std*/::_filelength( /*std*/::_fileno( gil_reinterpret_cast<FILE *>( fd ) ) );
+ #ifdef _MSC_VER
+ return /*std*/::_filelength( /*std*/::_fileno( gil_reinterpret_cast<FILE *>( fd ) ) );
+ #else
+ struct stat file_status;
+ BOOST_VERIFY( ::fstat( ::fileno( gil_reinterpret_cast<FILE *>( fd ) ), &file_status ) == 0 );
+ return file_status.st_size;
+ #endif // _MSC_VER
 }
 
 inline int FILE_map_proc( thandle_t /*handle*/, tdata_t * /*pbase*/, toff_t * /*psize*/ )
@@ -264,7 +276,9 @@
 
     void set_format( full_format_t::format_id const format )
     {
- BOOST_ASSERT( ( format_id_ == format ) && !"libtiff does not provide builtin conversion." );
+ #ifdef _DEBUG
+ BOOST_ASSERT( ( format_id_ == format ) && !"libtiff does not provide builtin conversion." );
+ #endif // _DEBUG
         ignore_unused_variable_warning( format );
     }
 
@@ -560,7 +574,7 @@
 
         BOOST_STATIC_CONSTANT( bool, throws_on_error = false );
 
- private: friend libtiff_image;
+ private: friend class libtiff_image;
         sequential_row_access_state() : position_( 0 ) {}
 
         unsigned int position_;
@@ -659,8 +673,12 @@
     }
 
 private: // Private formatted_image_base interface.
- friend base_t;
- struct tile_setup_t : boost::noncopyable
+ friend class base_t;
+
+ struct tile_setup_t
+ #ifndef __clang__
+ : boost::noncopyable
+ #endif // __clang__
     {
         tile_setup_t( libtiff_image const & source, point2<std::ptrdiff_t> const & dimensions, offset_t const offset, bool const nptcc )
             :
@@ -1189,7 +1207,7 @@
     }
 
     template <typename Pixel>
- class scanline_buffer_t : noncopyable
+ class scanline_buffer_t
     {
     public:
         scanline_buffer_t( libtiff_image const & tiff, mpl::true_ /* nptcc */ ) : buffer_( planar_scanline_buffer_aux( tiff ) ) {}
@@ -1203,7 +1221,7 @@
     };
 
     template <typename Pixel>
- class planar_scanline_buffer_t : noncopyable
+ class planar_scanline_buffer_t
     {
     public:
         planar_scanline_buffer_t( libtiff_image & image ) : buffer_( planar_scanline_buffer_aux( tiff ) ) {}

Modified: sandbox/gil/boost/gil/extension/io2/wic_image.hpp
==============================================================================
--- sandbox/gil/boost/gil/extension/io2/wic_image.hpp (original)
+++ sandbox/gil/boost/gil/extension/io2/wic_image.hpp 2011-01-09 17:53:10 EST (Sun, 09 Jan 2011)
@@ -479,7 +479,7 @@
     lib_object_t & lib_object() { return lib_object_; }
 
 private: // Private formatted_image_base interface.
- friend base_t;
+ friend class base_t;
 
     template <class MyView, class TargetView, class Converter>
     void generic_convert_to_prepared_view( TargetView const & view, Converter const & converter ) const


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk