summaryrefslogtreecommitdiff
path: root/science/netcdf4/files/patch-ncvalues.h
blob: a6d8be1c942801ce982d15ea27e58c04a691cc0c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
--- cxx/ncvalues.h.orig	Wed Oct 28 18:10:16 1998
+++ cxx/ncvalues.h	Sat Feb  7 14:03:13 2004
@@ -10,12 +10,9 @@
 #ifndef Ncvalues_def
 #define Ncvalues_def
 
-#include <iostream.h>
-#ifdef STRSTREAM_H_SPEC
-#   include STRSTREAM_H_SPEC
-#else
-#   include <strstream.h>
-#endif
+#include <bitset>
+#include <iostream>
+#include <sstream>
 #include <limits.h>
 #include <string.h>
 #include "netcdf.h"
@@ -24,6 +21,8 @@
 
 #define NC_UNSPECIFIED ((nc_type)0)
 
+using namespace std;
+
 enum NcType 
 {
   ncNoType = NC_UNSPECIFIED, 
@@ -219,9 +218,12 @@
 #define as_string_implement(TYPE)					      \
 char* NcVal(TYPE)::as_string( long n ) const				      \
 {									      \
-    char* s = new char[32];						      \
-    ostrstream ostr(s, sizeof(s));                                            \
+    static char s[32];							      \
+    ostringstream ostr;                                                       \
     ostr << the_values[n] << ends;              			      \
+    std::string data( ostr.str() );					      \
+    strncpy( s, data.data(), sizeof(s)-1);				      \
+    s[ sizeof(s)-1 ] = 0;						      \
     return s;								      \
 }