От: | AgIle | ||
Дата: | 29.08.06 10:42 | ||
Оценка: |
class IDownloaderObserver
{
public:
virtual void OnCompleted(CString const& fileName) =0;
};
typedef shared_ptr<IDownloaderObserver> IDownloaderObserverPtr;
typedef vector<IDownloaderObserverPtr> DownloadObservers;
class DownloadSubject
{
public:
void registerObserver(IDownloaderObserverPtr observer);
void removeObserver(IDownloaderObserverPtr observer);
protected:
void notifyCompleted(CString const& fileName);
private:
/*DownloadObservers*/ vector<IDownloaderObserver*> downloadObservers;
};
void DownloadSubject::notifyCompleted(CString const& fileName)
{
for_each( downloadObservers.begin(),
downloadObservers.end(),
lambda::bind(&IDownloaderObserver::OnCompleted, lambda::_1, fileName) );
}
c:\Agile\libr\boost\include\boost-1_33_1\boost\lambda\detail\actions.hpp(96): error C2665: 'boost::lambda::function_adaptor<Func>::apply' : none of the 2 overloads can convert parameter 2 from type 'std::allocator<_Ty>::value_type'
with
[
Func=boost::lambda::return_type_N<boost::lambda::function_action<3>,boost::lambda::lambda_functor_base<boost::lambda::action<3,boost::lambda::function_action<3>>,boost::tuples::tuple<const boost::lambda::detail::bind_traits<void (__thiscall IDownloaderObserver::* const )(const CString &)>::type,const boost::lambda::detail::bind_traits<const boost::lambda::placeholder1_type>::type,const boost::lambda::detail::bind_traits<const CString>::type,boost::lambda::detail::bind_traits<boost::tuples::null_type>::type,boost::lambda::detail::bind_traits<boost::tuples::null_type>::type,boost::lambda::detail::bind_traits<boost::tuples::null_type>::type,boost::lambda::detail::bind_traits<boost::tuples::null_type>::type,boost::lambda::detail::bind_traits<boost::tuples::null_type>::type,boost::lambda::detail::bind_traits<boost::tuples::null_type>::type,boost::lambda::detail::bind_traits<boost::tuples::null_type>::type>>::sig<boost::tuples::tuple<std::allocator<IDownloaderObserverPtr>::value_type &,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>>::rets_t>::plain_Func
]
and
[
_Ty=IDownloaderObserverPtr
]