dumapp: fix for C++14

With C++14, the way exceptions are specified has changed (somehow, don't
ask me), thus causing build failures:

    dumapp.cpp: In function ‘void* operator new(std::size_t)’:
    dumapp.cpp:192:19: error: declaration of ‘void* operator new(std::size_t) throw (std::bad_alloc)’ has a different exception specifier
     void * DUMA_CDECL operator new( DUMA_SIZE_T size )
                       ^~~~~~~~
    In file included from dumapp.cpp:39:0:
    dumapp.h:91:23: note: from previous declaration ‘void* operator new(std::size_t)’
     void * DUMA_CDECL operator new(DUMA_SIZE_T) throw(std::bad_alloc);
                       ^~~~~~~~

This is most evident with gcc-6.x, since the default C++ standard has
changed from C++11 to C++14, thus exposing these new failures.

Fix that by guarding the exception handling, a bit like was done
with GRASS GIS (thanks DuckDuckGo):

    https://trac.osgeo.org/grass/changeset?old_path=%2F&old=68817&new_path=%2F&new=68818&sfp_email=&sfph_mail=

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

---
Note: The last commit in DUMA's CVS repo was more than 7 years ago.
I doubt it is still active, so the patch was not sent upstream. :-/

diff -durN duma-2.5.15.orig/dumapp.cpp duma-2.5.15/dumapp.cpp
--- duma-2.5.15.orig/dumapp.cpp	2008-08-03 22:46:06.000000000 +0200
+++ duma-2.5.15/dumapp.cpp	2016-07-10 21:55:22.670386099 +0200
@@ -190,7 +190,9 @@
  * (11) = (a) ; ASW
  */
 void * DUMA_CDECL operator new( DUMA_SIZE_T size )
+#ifdef DUMA_EXCEPTION_SPECS
 throw(std::bad_alloc)
+#endif
 {
   return duma_new_operator(size, EFA_NEW_ELEM, true  DUMA_PARAMS_UK);
 }
@@ -254,7 +256,9 @@
  * (21) = (a) ; AAW
  */
 void * DUMA_CDECL operator new[]( DUMA_SIZE_T size )
+#ifdef DUMA_EXCEPTION_SPECS
 throw(std::bad_alloc)
+#endif
 {
   return duma_new_operator(size, EFA_NEW_ARRAY, true  DUMA_PARAMS_UK);
 }
diff -durN duma-2.5.15.orig/dumapp.h duma-2.5.15/dumapp.h
--- duma-2.5.15.orig/dumapp.h	2009-04-11 14:41:44.000000000 +0200
+++ duma-2.5.15/dumapp.h	2016-07-10 21:55:22.670386099 +0200
@@ -35,6 +35,10 @@
 
 #include "duma.h"
 
+#if __cplusplus < 201103L
+  #define DUMA_EXCEPTION_SPECS 1
+#endif
+
 /* remove previous macro definitions */
 #include "noduma.h"
 
