id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc
9153,Building boost::log in Sun Studio 12.3: boost::log::aux::light_function fails to build,Brian Vandenberg ,Andrey Semashev,"I get an error building boost::log in Sun Studio 12.3, while building anything that uses '''light_function_pp.hpp''':
{{{
""./boost/log/detail/light_function_pp.hpp"", line 44: Error: Multiple declaration for impl.
""./boost/log/expressions/filter.hpp"", line 58: Where: While specializing ""boost::log::v2_mt_posix::aux::light_function"".
""./boost/log/expressions/filter.hpp"", line 58: Where: Specialized in non-template code.
}}}
I can reproduce this problem on a much smaller scale:
{{{
template < typename SignatureT >
class light_function ;
template < typename ResultT, typename ArgT0 >
class light_function < ResultT ( ArgT0 ) > {
private:
struct impl_base {};
impl_base *m_pImpl;
#if defined( BREAK_IT )
template < typename FunT >
class impl;
template < typename FunT >
friend class impl;
#endif
template < typename FunT >
class impl : public impl_base {};
#if !defined( BREAK_IT )
template < typename FunT >
friend class impl;
#endif
public:
template
light_function( T const &t ) : m_pImpl( static_cast() ) {}
};
int main( int argc, char *argv[] ) {
light_function lf(3);
return 0;
}
}}}
When compiled in Linux or Solaris with SS12.3, I get the exact same error.",Bugs,closed,To Be Determined,log,Boost 1.54.0,Problem,fixed,,phantall+boost@…