From: Matthias Troyer (troyer_at_[hidden])
Date: 2006-11-12 08:27:34


Hi Beman, hi all

Due to recent changes to the filesystem library now, the header
detail/identifier.hpp is now included in my projects and contains the
dangerous code segment:

   template <class Ostream, class Id>
     typename enable_if< is_base_of< identifier< typename
Id::value_type, Id >, Id >,
       Ostream & >::type operator<<( Ostream & os, const Id & id )
   {
     return os << id.value();
   }

which breaks all of my codes, since I have a type Id, that has a type
member Id::value_type which is an abstract base class. My compiler
(Apple gcc-4.0) now tries to instantiate identifier< typename
Id::value_type, Id >, which fails because Id::value_type is abstract,
and the compiler aborts with an error message.

This causes all of our codes to fail to compile with the current CVS
head

Matthias