remove more unused stuff
This commit is contained in:
@@ -69,171 +69,6 @@
|
|||||||
// - Wang Haifeng
|
// - Wang Haifeng
|
||||||
// - Tim Dowty
|
// - Tim Dowty
|
||||||
// - Arnt Witteveen
|
// - Arnt Witteveen
|
||||||
//
|
|
||||||
// REVISION HISTORY
|
|
||||||
// 2002-JUN-26 - Thanks to Arnt Witteveen for pointing out that I was using
|
|
||||||
// static_cast<> in a place in which I should have been using
|
|
||||||
// reinterpret_cast<> (the ctor for unsigned char strings).
|
|
||||||
// That's what happens when I don't unit-test properly!
|
|
||||||
// Arnt also noticed that CString was silently correcting the
|
|
||||||
// 'nCount' argument to Left() and Right() where CStdString was
|
|
||||||
// not (and crashing if it was bad). That is also now fixed!
|
|
||||||
// 2002-FEB-25 - Thanks to Tim Dowty for pointing out (and giving me the fix
|
|
||||||
// for) a conversion problem with non-ASCII MBCS characters.
|
|
||||||
// CStdString is now used in my favorite commercial MP3 player!
|
|
||||||
// 2001-DEC-06 - Thanks to Wang Haifeng for spotting a problem in one of the
|
|
||||||
// assignment operators (for _bstr_t) that would cause compiler
|
|
||||||
// errors when refcounting protection was turned off.
|
|
||||||
// 2001-NOV-27 - Remove calls to operator!= which involve reverse_iterators
|
|
||||||
// due to a conflict with the rel_ops operator!=. Thanks to
|
|
||||||
// John James for pointing this out.
|
|
||||||
// 2001-OCT-29 - Added a minor range checking fix for the Mid function to
|
|
||||||
// make it as forgiving as CString's version is. Thanks to
|
|
||||||
// Igor Kholodov for noticing this.
|
|
||||||
// - Added a specialization of std::swap for CStdString. Thanks
|
|
||||||
// to Mike Crusader for suggesting this! It's commented out
|
|
||||||
// because you're not supposed to inject your own code into the
|
|
||||||
// 'std' namespace. But if you don't care about that, it's
|
|
||||||
// there if you want it
|
|
||||||
// - Thanks to Jason Mills for catching a case where CString was
|
|
||||||
// more forgiving in the Delete() function than I was.
|
|
||||||
// 2001-JUN-06 - I was violating the Standard name lookup rules stated
|
|
||||||
// in [14.6.2(3)]. None of the compilers I've tried so
|
|
||||||
// far apparently caught this but HP-UX aCC 3.30 did. The
|
|
||||||
// fix was to add 'this->' prefixes in many places.
|
|
||||||
// Thanks to Farrokh Nejadlotfi for this!
|
|
||||||
//
|
|
||||||
// 2001-APR-27 - StreamLoad was calculating the number of BYTES in one
|
|
||||||
// case, not characters. Thanks to Pablo Presedo for this.
|
|
||||||
//
|
|
||||||
// 2001-FEB-23 - Replace() had a bug which caused infinite loops if the
|
|
||||||
// source string was empty. Fixed thanks to Eric Nitzsche.
|
|
||||||
//
|
|
||||||
// 2001-FEB-23 - Scott Hathaway was a huge help in providing me with the
|
|
||||||
// ability to build CStdString on Sun Unix systems. He
|
|
||||||
// sent me detailed build reports about what works and what
|
|
||||||
// does not. If CStdString compiles on your Unix box, you
|
|
||||||
// can thank Scott for it.
|
|
||||||
//
|
|
||||||
// 2000-DEC-29 - Joldakowski noticed one overload of Insert failed to do
|
|
||||||
// range check as CString's does. Now fixed -- thanks!
|
|
||||||
//
|
|
||||||
// 2000-NOV-07 - Aaron pointed out that I was calling static member
|
|
||||||
// functions of char_traits via a temporary. This was not
|
|
||||||
// technically wrong, but it was unnecessary and caused
|
|
||||||
// problems for poor old buggy VC5. Thanks Aaron!
|
|
||||||
//
|
|
||||||
// 2000-JUL-11 - Joe Woodbury noted that the CString::Find docs don't match
|
|
||||||
// what the CString::Find code really ends up doing. I was
|
|
||||||
// trying to match the docs. Now I match the CString code
|
|
||||||
// - Joe also caught me truncating strings for GetBuffer() calls
|
|
||||||
// when the supplied length was less than the current length.
|
|
||||||
//
|
|
||||||
// 2000-MAY-25 - Better support for STLPORT's Standard library distribution
|
|
||||||
// - Got rid of the NSP macro - it interfered with Koenig lookup
|
|
||||||
// - Thanks to Joe Woodbury for catching a TrimLeft() bug that
|
|
||||||
// I introduced in January. Empty strings were not getting
|
|
||||||
// trimmed
|
|
||||||
//
|
|
||||||
// 2000-APR-17 - Thanks to Joe Vitaterna for pointing out that ReverseFind
|
|
||||||
// is supposed to be a const function.
|
|
||||||
//
|
|
||||||
// 2000-MAR-07 - Thanks to Ullrich Pollähne for catching a range bug in one
|
|
||||||
// of the overloads of assign.
|
|
||||||
//
|
|
||||||
// 2000-FEB-01 - You can now use CStdString on the Mac with CodeWarrior!
|
|
||||||
// Thanks to Todd Heckel for helping out with this.
|
|
||||||
//
|
|
||||||
// 2000-JAN-23 - Thanks to Jim Cline for pointing out how I could make the
|
|
||||||
// Trim() function more efficient.
|
|
||||||
// - Thanks to Jeff Kohn for prompting me to find and fix a typo
|
|
||||||
// in one of the addition operators that takes _bstr_t.
|
|
||||||
// - Got rid of the .CPP file - you only need StdString.h now!
|
|
||||||
//
|
|
||||||
// 1999-DEC-22 - Thanks to Greg Pickles for helping me identify a problem
|
|
||||||
// with my implementation of CStdString::FormatV in which
|
|
||||||
// resulting string might not be properly NULL terminated.
|
|
||||||
//
|
|
||||||
// 1999-DEC-06 - Chris Conti pointed yet another basic_string<> assignment
|
|
||||||
// bug that MS has not fixed. CStdString did nothing to fix
|
|
||||||
// it either but it does now! The bug was: create a string
|
|
||||||
// longer than 31 characters, get a pointer to it (via c_str())
|
|
||||||
// and then assign that pointer to the original string object.
|
|
||||||
// The resulting string would be empty. Not with CStdString!
|
|
||||||
//
|
|
||||||
// 1999-OCT-06 - BufferSet was erasing the string even when it was merely
|
|
||||||
// supposed to shrink it. Fixed. Thanks to Chris Conti.
|
|
||||||
// - Some of the Q172398 fixes were not checking for assignment-
|
|
||||||
// to-self. Fixed. Thanks to Baptiste Lepilleur.
|
|
||||||
//
|
|
||||||
// 1999-AUG-20 - Improved Load() function to be more efficient by using
|
|
||||||
// SizeOfResource(). Thanks to Rich Zuris for this.
|
|
||||||
// - Corrected resource ID constructor, again thanks to Rich.
|
|
||||||
// - Fixed a bug that occurred with UNICODE characters above
|
|
||||||
// the first 255 ANSI ones. Thanks to Craig Watson.
|
|
||||||
// - Added missing overloads of TrimLeft() and TrimRight().
|
|
||||||
// Thanks to Karim Ratib for pointing them out
|
|
||||||
//
|
|
||||||
// 1999-JUL-21 - Made all calls to GetBuf() with no args check length first.
|
|
||||||
//
|
|
||||||
// 1999-JUL-10 - Improved MFC/ATL independence of conversion macros
|
|
||||||
// - Added SS_NO_REFCOUNT macro to allow you to disable any
|
|
||||||
// reference-counting your basic_string<> impl. may do.
|
|
||||||
// - Improved ReleaseBuffer() to be as forgiving as CString.
|
|
||||||
// Thanks for Fan Xia for helping me find this and to
|
|
||||||
// Matthew Williams for pointing it out directly.
|
|
||||||
//
|
|
||||||
// 1999-JUL-06 - Thanks to Nigel Nunn for catching a very sneaky bug in
|
|
||||||
// ToLower/ToUpper. They should call GetBuf() instead of
|
|
||||||
// data() in order to ensure the changed string buffer is not
|
|
||||||
// reference-counted (in those implementations that refcount).
|
|
||||||
//
|
|
||||||
// 1999-JUL-01 - Added a true CString facade. Now you can use CStdString as
|
|
||||||
// a drop-in replacement for CString. If you find this useful,
|
|
||||||
// you can thank Chris Sells for finally convincing me to give
|
|
||||||
// in and implement it.
|
|
||||||
// - Changed operators << and >> (for MFC CArchive) to serialize
|
|
||||||
// EXACTLY as CString's do. So now you can send a CString out
|
|
||||||
// to a CArchive and later read it in as a CStdString. I have
|
|
||||||
// no idea why you would want to do this but you can.
|
|
||||||
//
|
|
||||||
// 1999-JUN-21 - Changed the CStdString class into the CStdStr template.
|
|
||||||
// - Fixed FormatV() to correctly decrement the loop counter.
|
|
||||||
// This was harmless bug but a bug nevertheless. Thanks to
|
|
||||||
// Chris (of Melbsys) for pointing it out
|
|
||||||
// - Changed Format() to try a normal stack-based array before
|
|
||||||
// using to _alloca().
|
|
||||||
// - Updated the text conversion macros to properly use code
|
|
||||||
// pages and to fit in better in MFC/ATL builds. In other
|
|
||||||
// words, I copied Microsoft's conversion stuff again.
|
|
||||||
// - Added equivalents of CString::GetBuffer, GetBufferSetLength
|
|
||||||
// - a Trim() function that combines TrimRight() and TrimLeft().
|
|
||||||
//
|
|
||||||
// 1999-MAR-13 - Corrected the "NotSpace" functional object to use _istpace()
|
|
||||||
// instead of _isspace() Thanks to Dave Plummer for this.
|
|
||||||
//
|
|
||||||
// 1999-FEB-26 - Removed errant line (left over from testing) that #defined
|
|
||||||
// _MFC_VER. Thanks to John C Sipos for noticing this.
|
|
||||||
//
|
|
||||||
// 1999-FEB-03 - Fixed a bug in a rarely-used overload of operator+() that
|
|
||||||
// caused infinite recursion and stack overflow
|
|
||||||
// - Added member functions to simplify the process of
|
|
||||||
// persisting CStdStrings to/from DCOM IStream interfaces
|
|
||||||
// - Added functional objects (e.g. StdStringLessNoCase) that
|
|
||||||
// allow CStdStrings to be used as keys STL map objects with
|
|
||||||
// case-insensitive comparison
|
|
||||||
// - Added array indexing operators (i.e. operator[]). I
|
|
||||||
// originally assumed that these were unnecessary and would be
|
|
||||||
// inherited from basic_string. However, without them, Visual
|
|
||||||
// C++ complains about ambiguous overloads when you try to use
|
|
||||||
// them. Thanks to Julian Selman to pointing this out.
|
|
||||||
//
|
|
||||||
// 1998-FEB-?? - Added overloads of assign() function to completely account
|
|
||||||
// for Q172398 bug. Thanks to "Pete the Plumber" for this
|
|
||||||
//
|
|
||||||
// 1998-FEB-?? - Initial submission
|
|
||||||
//
|
|
||||||
// =============================================================================
|
|
||||||
|
|
||||||
// Turn off browser references
|
// Turn off browser references
|
||||||
// Turn off unavoidable compiler warnings
|
// Turn off unavoidable compiler warnings
|
||||||
@@ -1023,12 +858,6 @@ public:
|
|||||||
return nReplaced;
|
return nReplaced;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ReverseFind(CT ch) const
|
|
||||||
{
|
|
||||||
MYSIZE nIdx = this->find_last_of(ch);
|
|
||||||
return static_cast<int>(MYBASE::npos == nIdx ? -1 : nIdx);
|
|
||||||
}
|
|
||||||
|
|
||||||
MYTYPE Right(int nCount) const
|
MYTYPE Right(int nCount) const
|
||||||
{
|
{
|
||||||
// Range check the count.
|
// Range check the count.
|
||||||
@@ -1075,57 +904,6 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
|
||||||
// CStdStr friend addition functions defined as inline
|
|
||||||
// -----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
|
||||||
// These versions of operator+ provided by Scott Hathaway in order to allow
|
|
||||||
// CStdString to build on Sun Unix systems.
|
|
||||||
// -----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#if defined(__SUNPRO_CC_COMPAT) || defined(__SUNPRO_CC)
|
|
||||||
|
|
||||||
inline
|
|
||||||
CStdStr<char> operator+(const CStdStr<char>& str1, const CStdStr<char>& str2)
|
|
||||||
{
|
|
||||||
CStdStr<char> strRet(str1);
|
|
||||||
strRet.append(str2);
|
|
||||||
return strRet;
|
|
||||||
}
|
|
||||||
|
|
||||||
inline
|
|
||||||
CStdStr<char> operator+(const CStdStr<char>& str, char t)
|
|
||||||
{
|
|
||||||
// this particular overload is needed for disabling reference counting
|
|
||||||
// though it's only an issue from line 1 to line 2
|
|
||||||
|
|
||||||
CStdStr<char> strRet(str); // 1
|
|
||||||
strRet.append(1, t); // 2
|
|
||||||
return strRet;
|
|
||||||
}
|
|
||||||
|
|
||||||
inline
|
|
||||||
CStdStr<char> operator+(const CStdStr<char>& str, PCSTR pA)
|
|
||||||
{
|
|
||||||
return CStdStr<char>(str) + CStdStr<char>(pA);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline
|
|
||||||
CStdStr<char> operator+(PCSTR pA, const CStdStr<char>& str)
|
|
||||||
{
|
|
||||||
CStdStr<char> strRet(pA);
|
|
||||||
strRet.append(str);
|
|
||||||
return strRet;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // defined(__SUNPRO_CC_COMPAT) || defined(__SUNPRO_CC)
|
|
||||||
|
|
||||||
|
|
||||||
// =============================================================================
|
// =============================================================================
|
||||||
// END OF CStdStr INLINE FUNCTION DEFINITIONS
|
// END OF CStdStr INLINE FUNCTION DEFINITIONS
|
||||||
// =============================================================================
|
// =============================================================================
|
||||||
|
|||||||
Reference in New Issue
Block a user