Looks like some bad code where an arbitrary pointer is implicitly passed to (and owned by) a boost::shared_ptr and GCC in -std=c++11 mode doesn't allow that.
/tmp/buildd/compiz-0.9.12.1+15.10.20150627.1/plugins/opengl/src/programcache.cpp: In member function 'void PrivateProgramCache::insert(std::string, GLProgram*)':
/tmp/buildd/compiz-0.9.12.1+15.10.20150627.1/plugins/opengl/src/programcache.cpp:162:70: error: no matching function for call to 'std::map<std::basic_string<char>, std::pair<boost::shared_ptr<GLProgram>, std::_List_iterator<std::basic_string<char> > > >::insert(std::pair<std::basic_string<char>, std::pair<GLProgram*, std::_List_iterator<std::basic_string<char> > > >)'
cache.insert (std::make_pair (name, std::make_pair (program, it)));
^
/tmp/buildd/compiz-0.9.12.1+15.10.20150627.1/plugins/opengl/src/programcache.cpp:162:70: note: candidates are:
In file included from /usr/include/c++/4.9/map:61:0,
from /tmp/buildd/compiz-0.9.12.1+15.10.20150627.1/plugins/opengl/include/opengl/programcache.h:31,
from /tmp/buildd/compiz-0.9.12.1+15.10.20150627.1/plugins/opengl/src/programcache.cpp:27:
/usr/include/c++/4.9/bits/stl_map.h:629:7: note: std::pair<typename std::_Rb_tree<_Key, std::pair<const _Key, _Tp>, std::_Select1st<std::pair<const _Key, _Tp> >, _Compare, typename __gnu_cxx::__alloc_traits<_Allocator>::rebind<std::pair<const _Key, _Tp> >::other>::iterator, bool> std::map<_Key, _Tp, _Compare, _Alloc>::insert(const value_type&) [with _Key = std::basic_string<char>; _Tp = std::pair<boost::shared_ptr<GLProgram>, std::_List_iterator<std::basic_string<char> > >; _Compare = std::less<std::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::basic_string<char>, std::pair<boost::shared_ptr<GLProgram>, std::_List_iterator<std::basic_string<char> > > > >; typename std::_Rb_tree<_Key, std::pair<const _Key, _Tp>, std::_Select1st<std::pair<const _Key, _Tp> >, _Compare, typename __gnu_cxx::__alloc_traits<_Allocator>::rebind<std::pair<const _Key, _Tp> >::other>::iterator = std::_Rb_tree_iterator<std::pair<const std::basic_string<char>, std::pair<boost::shared_ptr<GLProgram>, std::_List_iterator<std::basic_string<char> > > > >; std::map<_Key, _Tp, _Compare, _Alloc>::value_type = std::pair<const std::basic_string<char>, std::pair<boost::shared_ptr<GLProgram>, std::_List_iterator<std::basic_string<char> > > >]
insert(const value_type& __x)
^
/usr/include/c++/4.9/bits/stl_map.h:629:7: note: no known conversion for argument 1 from 'std::pair<std::basic_string<char>, std::pair<GLProgram*, std::_List_iterator<std::basic_string<char> > > >' to 'const value_type& {aka const std::pair<const std::basic_string<char>, std::pair<boost::shared_ptr<GLProgram>, std::_List_iterator<std::basic_string<char> > > >&}'
/usr/include/c++/4.9/bits/stl_map.h:637:9: note: template<class _Pair, class> std::pair<typename std::_Rb_tree<_Key, std::pair<const _Key, _Tp>, std::_Select1st<std::pair<const _Key, _Tp> >, _Compare, typename __gnu_cxx::__alloc_traits<_Allocator>::rebind<std::pair<const _Key, _Tp> >::other>::iterator, bool> std::map<_Key, _Tp, _Compare, _Alloc>::insert(_Pair&&) [with _Pair = _Pair; <template-parameter-2-2> = <template-parameter-1-2>; _Key = std::basic_string<char>; _Tp = std::pair<boost::shared_ptr<GLProgram>, std::_List_iterator<std::basic_string<char> > >; _Compare = std::less<std::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::basic_string<char>, std::pair<boost::shared_ptr<GLProgram>, std::_List_iterator<std::basic_string<char> > > > >]
insert(_Pair&& __x)
^
/usr/include/c++/4.9/bits/stl_map.h:637:9: note: template argument deduction/substitution failed:
/usr/include/c++/4.9/bits/stl_map.h:633:32: error: no type named 'type' in 'struct std::enable_if<false, void>'
template<typename _Pair, typename = typename
^
/usr/include/c++/4.9/bits/stl_map.h:650:7: note: void std::map<_Key, _Tp, _Compare, _Alloc>::insert(std::initializer_list<std::pair<const _Key, _Tp> >) [with _Key = std::basic_string<char>; _Tp = std::pair<boost::shared_ptr<GLProgram>, std::_List_iterator<std::basic_string<char> > >; _Compare = std::less<std::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::basic_string<char>, std::pair<boost::shared_ptr<GLProgram>, std::_List_iterator<std::basic_string<char> > > > >]
insert(std::initializer_list<value_type> __list)
^
/usr/include/c++/4.9/bits/stl_map.h:650:7: note: no known conversion for argument 1 from 'std::pair<std::basic_string<char>, std::pair<GLProgram*, std::_List_iterator<std::basic_string<char> > > >' to 'std::initializer_list<std::pair<const std::basic_string<char>, std::pair<boost::shared_ptr<GLProgram>, std::_List_iterator<std::basic_string<char> > > > >'
/usr/include/c++/4.9/bits/stl_map.h:679:7: note: std::map<_Key, _Tp, _Compare, _Alloc>::iterator std::map<_Key, _Tp, _Compare, _Alloc>::insert(std::map<_Key, _Tp, _Compare, _Alloc>::const_iterator, const value_type&) [with _Key = std::basic_string<char>; _Tp = std::pair<boost::shared_ptr<GLProgram>, std::_List_iterator<std::basic_string<char> > >; _Compare = std::less<std::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::basic_string<char>, std::pair<boost::shared_ptr<GLProgram>, std::_List_iterator<std::basic_string<char> > > > >; std::map<_Key, _Tp, _Compare, _Alloc>::iterator = std::_Rb_tree_iterator<std::pair<const std::basic_string<char>, std::pair<boost::shared_ptr<GLProgram>, std::_List_iterator<std::basic_string<char> > > > >; std::map<_Key, _Tp, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<const std::basic_string<char>, std::pair<boost::shared_ptr<GLProgram>, std::_List_iterator<std::basic_string<char> > > > >; std::map<_Key, _Tp, _Compare, _Alloc>::value_type = std::pair<const std::basic_string<char>, std::pair<boost::shared_ptr<GLProgram>, std::_List_iterator<std::basic_string<char> > > >]
insert(const_iterator __position, const value_type& __x)
^
/usr/include/c++/4.9/bits/stl_map.h:679:7: note: candidate expects 2 arguments, 1 provided
/usr/include/c++/4.9/bits/stl_map.h:690:9: note: template<class _Pair, class> std::map<_Key, _Tp, _Compare, _Alloc>::iterator std::map<_Key, _Tp, _Compare, _Alloc>::insert(std::map<_Key, _Tp, _Compare, _Alloc>::const_iterator, _Pair&&) [with _Pair = _Pair; <template-parameter-2-2> = <template-parameter-1-2>; _Key = std::basic_string<char>; _Tp = std::pair<boost::shared_ptr<GLProgram>, std::_List_iterator<std::basic_string<char> > >; _Compare = std::less<std::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::basic_string<char>, std::pair<boost::shared_ptr<GLProgram>, std::_List_iterator<std::basic_string<char> > > > >]
insert(const_iterator __position, _Pair&& __x)
^
/usr/include/c++/4.9/bits/stl_map.h:690:9: note: template argument deduction/substitution failed:
/tmp/buildd/compiz-0.9.12.1+15.10.20150627.1/plugins/opengl/src/programcache.cpp:162:70: note: cannot convert 'std::make_pair(_T1&&, _T2&&) [with _T1 = std::basic_string<char>&; _T2 = std::pair<GLProgram*, std::_List_iterator<std::basic_string<char> > >; typename std::__decay_and_strip<_T2>::__type = std::pair<GLProgram*, std::_List_iterator<std::basic_string<char> > >; typename std::__decay_and_strip<_Tp>::__type = std::basic_string<char>]((* & std::make_pair<GLProgram*&, std::_List_iterator<std::basic_string<char> >&>((* & program), (* & it))))' (type 'std::pair<std::basic_string<char>, std::pair<GLProgram*, std::_List_iterator<std::basic_string<char> > > >') to type 'std::map<std::basic_string<char>, std::pair<boost::shared_ptr<GLProgram>, std::_List_iterator<std::basic_string<char> > > >::const_iterator {aka std::_Rb_tree_const_iterator<std::pair<const std::basic_string<char>, std::pair<boost::shared_ptr<GLProgram>, std::_List_iterator<std::basic_string<char> > > > >}'
cache.insert (std::make_pair (name, std::make_pair (program, it)));
^
In file included from /usr/include/c++/4.9/map:61:0,
from /tmp/buildd/compiz-0.9.12.1+15.10.20150627.1/plugins/opengl/include/opengl/programcache.h:31,
from /tmp/buildd/compiz-0.9.12.1+15.10.20150627.1/plugins/opengl/src/programcache.cpp:27:
/usr/include/c++/4.9/bits/stl_map.h:705:9: note: template<class _InputIterator> void std::map<_Key, _Tp, _Compare, _Alloc>::insert(_InputIterator, _InputIterator) [with _InputIterator = _InputIterator; _Key = std::basic_string<char>; _Tp = std::pair<boost::shared_ptr<GLProgram>, std::_List_iterator<std::basic_string<char> > >; _Compare = std::less<std::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::basic_string<char>, std::pair<boost::shared_ptr<GLProgram>, std::_List_iterator<std::basic_string<char> > > > >]
insert(_InputIterator __first, _InputIterator __last)
^
/usr/include/c++/4.9/bits/stl_map.h:705:9: note: template argument deduction/substitution failed:
/tmp/buildd/compiz-0.9.12.1+15.10.20150627.1/plugins/opengl/src/programcache.cpp:162:70: note: candidate expects 2 arguments, 1 provided
cache.insert (std::make_pair (name, std::make_pair (program, it)));
^