Hi,
the r.viewshed and r.terraflow modules needs fix to compile with C++11. The errors are:
error: reference to ‘is_empty’ is ambiguous
error: reference to ‘is_void’ is ambiguous
The cause are the functions in modules which are named in the same way as functions newly added in C++11. The problem is actually caused by the fact that modules are using
using namespace std;
As explained by Glynn in [1] rewriting modules in the way that they don’t use std
namespace in this way could be difficult.
So my question is, was this fixed in the time of [1]? It is not clear from the discussion. If not, what is the right fix?
I suggest to put these functions into some namespace (I was not thinking about name yet) and using these functions with a namespace. There is only limited number of calls of these functions. Do you think it is a good idea?
Apparently, this issue needs to be fixed because on Mac OS X Mavericks it is already an issue (C++11 is the default as predicted by Glynn in [1]). Compile error should be reproducible with older GCC/clang by adding -std=c++11
option.
Vaclav
[1] Grass SVN in Android, display issue, http://lists.osgeo.org/pipermail/grass-dev/2012-September/060088.html, http://osgeo-org.1560.x6.nabble.com/Grass-SVN-in-Android-display-issue-td5002221.html