Looks more like a bug in gcc, but we'll need to work around it as this is the default compiler on mac os x. The compiler should default to using the pass-by-reference variant of the function, but doesn't. No idea why. Maybe you, Nicolai.
$ gcc --version ~/Desktop/Programming/cpp/widelands/bzr_repo
i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5664)
--- snip ---
[ 0%] Built target BzrRevision
[ 0%] Building CXX object src/CMakeFiles/widelands_all.dir/ui_basic/button.cc.o
/Users/sirver/Desktop/Programming/cpp/widelands/bzr_repo/src/ui_basic/button.cc: In member function ‘virtual void UI::Button::draw(RenderTarget&)’:
/Users/sirver/Desktop/Programming/cpp/widelands/bzr_repo/src/ui_basic/button.cc:183: error: no matching function for call to ‘RenderTarget::RenderTarget(RenderTarget)’
/Users/sirver/Desktop/Programming/cpp/widelands/bzr_repo/src/graphic/rendertarget.h:53: note: candidates are: RenderTarget::RenderTarget(RenderTarget&)
/Users/sirver/Desktop/Programming/cpp/widelands/bzr_repo/src/graphic/rendertarget.h:52: note: RenderTarget::RenderTarget(OffscreenSurfacePtr)
/Users/sirver/Desktop/Programming/cpp/widelands/bzr_repo/src/graphic/rendertarget.h:51: note: RenderTarget::RenderTarget(SurfacePtr)
make[2]: *** [src/CMakeFiles/widelands_all.dir/ui_basic/button.cc.o] Error 1
[ 0%] Building CXX object src/CMakeFiles/widelands_all.dir/ui_basic/listselect.cc.o
/Users/sirver/Desktop/Programming/cpp/widelands/bzr_repo/src/ui_basic/listselect.cc: In member function ‘virtual void UI::BaseListselect::draw(RenderTarget&)’:
/Users/sirver/Desktop/Programming/cpp/widelands/bzr_repo/src/ui_basic/listselect.cc:364: error: no matching function for call to ‘RenderTarget::RenderTarget(RenderTarget)’
/Users/sirver/Desktop/Programming/cpp/widelands/bzr_repo/src/graphic/rendertarget.h:53: note: candidates are: RenderTarget::RenderTarget(RenderTarget&)
/Users/sirver/Desktop/Programming/cpp/widelands/bzr_repo/src/graphic/rendertarget.h:52: note: RenderTarget::RenderTarget(OffscreenSurfacePtr)
/Users/sirver/Desktop/Programming/cpp/widelands/bzr_repo/src/graphic/rendertarget.h:51: note: RenderTarget::RenderTarget(SurfacePtr)
make[2]: *** [src/CMakeFiles/widelands_all.dir/ui_basic/listselect.cc.o] Error 1
[ 0%] Building CXX object src/CMakeFiles/widelands_all.dir/ui_basic/slider.cc.o
/Users/sirver/Desktop/Programming/cpp/widelands/bzr_repo/src/ui_basic/slider.cc: In member function ‘virtual void UI::HorizontalSlider::draw(RenderTarget&)’:
/Users/sirver/Desktop/Programming/cpp/widelands/bzr_repo/src/ui_basic/slider.cc:372: error: no matching function for call to ‘RenderTarget::RenderTarget(RenderTarget)’
/Users/sirver/Desktop/Programming/cpp/widelands/bzr_repo/src/graphic/rendertarget.h:53: note: candidates are: RenderTarget::RenderTarget(RenderTarget&)
/Users/sirver/Desktop/Programming/cpp/widelands/bzr_repo/src/graphic/rendertarget.h:52: note: RenderTarget::RenderTarget(OffscreenSurfacePtr)
/Users/sirver/Desktop/Programming/cpp/widelands/bzr_repo/src/graphic/rendertarget.h:51: note: RenderTarget::RenderTarget(SurfacePtr)
/Users/sirver/Desktop/Programming/cpp/widelands/bzr_repo/src/ui_basic/slider.cc: In member function ‘virtual void UI::VerticalSlider::draw(RenderTarget&)’:
/Users/sirver/Desktop/Programming/cpp/widelands/bzr_repo/src/ui_basic/slider.cc:470: error: no matching function for call to ‘RenderTarget::RenderTarget(RenderTarget)’
/Users/sirver/Desktop/Programming/cpp/widelands/bzr_repo/src/graphic/rendertarget.h:53: note: candidates are: RenderTarget::RenderTarget(RenderTarget&)
/Users/sirver/Desktop/Programming/cpp/widelands/bzr_repo/src/graphic/rendertarget.h:52: note: RenderTarget::RenderTarget(OffscreenSurfacePtr)
/Users/sirver/Desktop/Programming/cpp/widelands/bzr_repo/src/graphic/rendertarget.h:51: note: RenderTarget::RenderTarget(SurfacePtr)
make[2]: *** [src/CMakeFiles/widelands_all.dir/ui_basic/slider.cc.o] Error 1
make[2]: Target `src/CMakeFiles/widelands_all.dir/build' not remade because of errors.
make[1]: *** [src/CMakeFiles/widelands_all.dir/all] Error 2
--- snap ---
Probably fixed in r5758... at least the copy constructor obviously should take a const parameter, and it's relatively reasonable for a compiler to complain about that, I guess. Please test and mark the bug as fixed or give feedback.