From 515be5ad3a4230a7cd701421c205e34740f0a90c Mon Sep 17 00:00:00 2001
From: sebastien <sebastien@ac1d8469-bf42-47a9-8791-bf33cf982152>
Date: Mon, 13 Jul 2009 09:13:42 +0000
Subject: [PATCH] Preprocessor: refactor usage of GNU g++ specific features

git-svn-id: https://www.dynare.org/svn/dynare/trunk@2840 ac1d8469-bf42-47a9-8791-bf33cf982152
---
 preprocessor/ExprNode.cc    | 8 ++++++--
 preprocessor/StaticModel.cc | 8 ++++++--
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/preprocessor/ExprNode.cc b/preprocessor/ExprNode.cc
index 47d7bc037d..5c799fcc0a 100644
--- a/preprocessor/ExprNode.cc
+++ b/preprocessor/ExprNode.cc
@@ -21,7 +21,11 @@
 #include <iterator>
 #include <algorithm>
 
-#include <ext/functional>
+// For select1st()
+#ifdef __GNUC__
+# include <ext/functional>
+using namespace __gnu_cxx;
+#endif
 
 #include <cassert>
 #include <cmath>
@@ -103,7 +107,7 @@ ExprNode::collectModelLocalVariables(set<int> &result) const
   set<pair<int, int> > symb_ids;
   collectVariables(eModelLocalVariable, symb_ids);
   transform(symb_ids.begin(), symb_ids.end(), inserter(result, result.begin()),
-            __gnu_cxx::select1st<pair<int, int> >());
+            select1st<pair<int, int> >());
 }
 
 void
diff --git a/preprocessor/StaticModel.cc b/preprocessor/StaticModel.cc
index def06c0b52..439a2abe48 100644
--- a/preprocessor/StaticModel.cc
+++ b/preprocessor/StaticModel.cc
@@ -26,7 +26,11 @@
 #include <functional>
 
 #ifdef DEBUG
-# include <ext/functional>
+// For select2nd()
+# ifdef __GNUC__
+#  include <ext/functional>
+using namespace __gnu_cxx;
+# endif
 #endif
 
 #include <boost/graph/adjacency_list.hpp>
@@ -320,7 +324,7 @@ StaticModel::computeNormalization()
       n1++;
 
       pair<multimap<int, int>::const_iterator, multimap<int, int>::const_iterator> x = natural_endo2eqs.equal_range(i);
-      if (find_if(x.first, x.second, compose1(bind2nd(equal_to<int>(), endo2eq[i]), __gnu_cxx::select2nd<multimap<int, int>::value_type>())) == x.second)
+      if (find_if(x.first, x.second, compose1(bind2nd(equal_to<int>(), endo2eq[i]), select2nd<multimap<int, int>::value_type>())) == x.second)
         cout << "Natural normalization of variable " << symbol_table.getName(symbol_table.getID(eEndogenous, i))
              << " not used." << endl;
       else
-- 
GitLab