ImplicitlyDeletedCopyConstructor is a phrase I had not seen before today, when the Clang compiler (CeeLanguageFamilyFrontEnd) started to emit it when I asked it to compile code which I regarded as working. -- JohnFletcher ---- I get error messages like this for some code in FC++(FunctoidsInCpp) which works up until now: fcpp/list.h:79:14: error: call to implicitly-deleted copy constructor of 'std::pair' return rep->cache().first(); ^~~~~~~~~~~~~~~~~~~~ fcpp/list.h:158:28: note: in instantiation of member function 'fcpp::impl::List >::priv_head' requested here T head() const { return priv_head(); } ^ fcpp/list.h:576:16: note: in instantiation of member function 'fcpp::impl::List >::head' requested here return l.head(); ^ fcpp/full.h:429:13: note: in instantiation of function template specialization 'fcpp::impl::XHead::operator() >' requested here return f(x); ^ fcppideas9.cpp:1116:25: note: in instantiation of function template specialization 'fcpp::Full1::operator()' defined here struct pair The point of all this is that my code wants to make a copy of a std::pair which used to work but now it does not. Here is a reference which explains why this has found its way into the new standard for CeePlusPlus (CeePlusPlusEleven). I have not found out how to set up the copy when the template argument passed into my code could be a std::pair or something else. *** http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2924.pdf I am studying the FAQ (see CeePlusPlusEleven) to see how to change my code to resolve this. The consensus seems to be that this is a problem in libstdc++ for gcc 4.4. Later versions fix this. Interesting. Now I am experimenting with libc++, which is a version of libstdc++ which comes with Clang. After the work of installing libc++ and then updating my version of the BoostLibraries, I have got there. See CeeLanguageFamilyFrontEnd. -- JohnFletcher ---- CategoryCpp