add a getline wrapper for mfc
This commit is contained in:
+22
-3
@@ -34,8 +34,15 @@
|
|||||||
#define NOMINMAX /* make sure Windows doesn't try to define this */
|
#define NOMINMAX /* make sure Windows doesn't try to define this */
|
||||||
|
|
||||||
#include <afxwin.h> // MFC core and standard components
|
#include <afxwin.h> // MFC core and standard components
|
||||||
|
/* Make sure everyone has min and max: */
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
||||||
|
/* Everything will need string for one reason or another: */
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
/* And vector: */
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
// Don't include these everywhere. They're big. -Chris
|
// Don't include these everywhere. They're big. -Chris
|
||||||
@@ -52,9 +59,19 @@ using namespace std;
|
|||||||
|
|
||||||
/* Use CStdString: */
|
/* Use CStdString: */
|
||||||
#define CString CStdString
|
#define CString CStdString
|
||||||
#define CStringArray StdCArray<CString,CString>
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
|
/* Wrapper to use getline() on MFC strings. */
|
||||||
|
template<class _E, class _Tr> inline
|
||||||
|
basic_istream<_E, _Tr>& getline(basic_istream<_E, _Tr> &I,
|
||||||
|
CString &X) {
|
||||||
|
string str;
|
||||||
|
|
||||||
|
basic_istream<_E, _Tr> &ret = getline(I, str);
|
||||||
|
X = str.c_str();
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
/* Arg. VC7's CString has GetString(), an equivalent of c_str().
|
/* Arg. VC7's CString has GetString(), an equivalent of c_str().
|
||||||
* VC6 doesn't have that. We need it to transition to std::string
|
* VC6 doesn't have that. We need it to transition to std::string
|
||||||
* sanely. So, sneakily add it. This goes away when we finish
|
* sanely. So, sneakily add it. This goes away when we finish
|
||||||
@@ -88,8 +105,10 @@ inline const T& min(const T &a, const T &b, P Pr)
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "STDCarray.h"
|
template <class Type, class IGNOREME>
|
||||||
#define CStringArray StdCArray<CString,CString>
|
class StdCArray: public std::vector<Type> {};
|
||||||
|
#define CArray StdCArray
|
||||||
|
#define CStringArray vector<CString>
|
||||||
|
|
||||||
/* Include this here to make sure our assertion handler is always
|
/* Include this here to make sure our assertion handler is always
|
||||||
* used. (This file is a dependency of most everything anyway,
|
* used. (This file is a dependency of most everything anyway,
|
||||||
|
|||||||
Reference in New Issue
Block a user