14 #ifndef XSENS_NO_WCHAR
16 #if !defined(XSENS_NO_STL) && defined(__cplusplus) && defined(WIN32)
32 #define XsString_INITIALIZER XSARRAY_INITIALIZER(&g_xsStringDescriptor)
36 #define XSSTRING_INITIALIZER XsString_INITIALIZER
45 #ifndef XSENS_NO_WCHAR
56 #define XsString_copy(thisPtr, copy) XsArray_copy(copy, thisPtr)
57 #define XsString_swap(a, b) XsArray_swap(a, b)
68 struct XsStringType :
public XsArrayImpl<char, g_xsStringDescriptor, XsString>
70 inline XsStringType() : XsArrayImpl()
75 XsArrayImpl(
ref,sz,flags)
97 return m_reserved?m_reserved-1:0;
104 return *ptrAt(m_data,
index);
165 inline void append(
const XsStringType& other)
173 struct XsString :
public XsStringType {
183 inline XsString(
const XsStringType& other)
184 : XsStringType(other)
190 : XsStringType(
ref, sz+1, flags)
193 #ifndef XSENS_NOITERATOR
195 template <
typename Iterator>
196 inline XsString(Iterator
const& beginIt, Iterator
const& endIt)
197 : XsStringType(beginIt, endIt)
210 #ifndef XSENS_NO_WCHAR
241 static const char nullChar = 0;
243 return (
char*) &nullChar;
244 return begin().operator ->();
248 inline char const* c_str()
const
250 static const char nullChar = 0;
253 return begin().operator ->();
270 tmp.reserve(
size()+other.size());
278 std::wstring toStdWString()
const
281 return std::wstring();
291 using XsStringType::operator ==;
292 using XsStringType::operator !=;
293 #ifndef XSENS_NOITERATOR
294 using XsStringType::operator <<;
301 if (!str)
return empty();
302 return !strcmp(c_str(), str);
308 return !(*
this == str);
340 template<
typename _CharT,
typename _Traits>
341 basic_ostream<_CharT, _Traits>&
operator<<(basic_ostream<_CharT, _Traits>& o,
XsString const& xs)
343 return (o << xs.toStdString());
EIGEN_STRONG_INLINE void assign(const Scalar v)
EIGEN_STRONG_INLINE bool empty() const
EIGEN_STRONG_INLINE void setSize(size_t row, size_t col)
Changes the size of matrix, maintaining its previous content as possible and padding with zeros where...
EIGEN_STRONG_INLINE iterator begin()
GLubyte GLubyte GLubyte GLubyte w
GLuint GLuint GLsizei count
GLsizei const GLchar ** string
std::vector< T1 > operator+(const std::vector< T1 > &a, const std::vector< T2 > &b)
a+b (element-wise sum)
XsDataFlags
These flags define the behaviour of data contained by Xsens data structures.
bool operator!=(const TPoint2D &p1, const TPoint2D &p2)
Exact comparison between 2D points.
bool operator==(const TPoint2D &p1, const TPoint2D &p2)
Exact comparison between 2D points.
int BASE_IMPEXP sprintf(char *buf, size_t bufSize, const char *format,...) MRPT_NO_THROWS MRPT_printf_format_check(3
An OS-independent version of sprintf (Notice the bufSize param, which may be ignored in some compiler...
std::ostream & operator<<(std::ostream &out, MD5 md5)
VALUE & operator[](const KEY &key)
Write/read via [i] operator, that creates an element if it didn't exist already.
size_t m_size
Number of elements accessed with write access so far.
This object describes how to treat the data in an array.
XSTYPES_DLL_API void XsArray_reserve(void *thisPtr, XsSize count)
XSTYPES_DLL_API void XsArray_insert(void *thisPtr, XsSize index, XsSize count, void const *src)
XSTYPES_DLL_API void XsString_assign(XsString *thisPtr, XsSize count, const char *src)
XSTYPES_DLL_API void XsString_construct(XsString *thisPtr)
XSTYPES_DLL_API void XsString_erase(XsString *thisPtr, XsSize index, XsSize count)
XSARRAY_STRUCT(XsString, char)
XSTYPES_DLL_API XsSize XsString_copyToWCharArray(const XsString *thisPtr, wchar_t *dest, XsSize size)
XSTYPES_DLL_API void XsString_assignCharArray(XsString *thisPtr, const char *src)
XSTYPES_DLL_API void XsString_assignWCharArray(XsString *thisPtr, const wchar_t *src)
XSTYPES_DLL_API void XsString_append(XsString *thisPtr, XsString const *other)
XSTYPES_DLL_API void XsString_destruct(XsString *thisPtr)
XsArrayDescriptor const XSTYPES_DLL_API g_xsStringDescriptor
XSTYPES_DLL_API void XsString_resize(XsString *thisPtr, XsSize count)
size_t XsSize
XsSize must be unsigned number!