Index: /trunk/include/iprt/cpp/restanyobject.h
===================================================================
--- /trunk/include/iprt/cpp/restanyobject.h	(revision 74424)
+++ /trunk/include/iprt/cpp/restanyobject.h	(revision 74425)
@@ -53,5 +53,5 @@
 public:
     /** Default constructor. */
-    RTCRestAnyObject();
+    RTCRestAnyObject() RT_NOEXCEPT;
     /** Destructor. */
     virtual ~RTCRestAnyObject();
@@ -63,54 +63,54 @@
 
     /** Safe copy assignment method. */
-    int assignCopy(RTCRestAnyObject const &a_rThat);
+    int assignCopy(RTCRestAnyObject const &a_rThat) RT_NOEXCEPT;
     /** Safe copy assignment method, boolean variant. */
-    int assignCopy(RTCRestBool const &a_rThat);
+    int assignCopy(RTCRestBool const &a_rThat) RT_NOEXCEPT;
     /** Safe copy assignment method, int64_t variant. */
-    int assignCopy(RTCRestInt64 const &a_rThat);
+    int assignCopy(RTCRestInt64 const &a_rThat) RT_NOEXCEPT;
     /** Safe copy assignment method, int32_t variant. */
-    int assignCopy(RTCRestInt32 const &a_rThat);
+    int assignCopy(RTCRestInt32 const &a_rThat) RT_NOEXCEPT;
     /** Safe copy assignment method, int16_t variant. */
-    int assignCopy(RTCRestInt16 const &a_rThat);
+    int assignCopy(RTCRestInt16 const &a_rThat) RT_NOEXCEPT;
     /** Safe copy assignment method, double variant. */
-    int assignCopy(RTCRestDouble const &a_rThat);
+    int assignCopy(RTCRestDouble const &a_rThat) RT_NOEXCEPT;
     /** Safe copy assignment method, string variant. */
-    int assignCopy(RTCRestString const &a_rThat);
+    int assignCopy(RTCRestString const &a_rThat) RT_NOEXCEPT;
     /** Safe copy assignment method, array variant. */
-    int assignCopy(RTCRestArray<RTCRestAnyObject> const &a_rThat);
+    int assignCopy(RTCRestArray<RTCRestAnyObject> const &a_rThat) RT_NOEXCEPT;
     /** Safe copy assignment method, string map variant. */
-    int assignCopy(RTCRestStringMap<RTCRestAnyObject> const &a_rThat);
+    int assignCopy(RTCRestStringMap<RTCRestAnyObject> const &a_rThat) RT_NOEXCEPT;
 
     /** Safe value assignment method, boolean variant. */
-    int assignValue(bool a_fValue);
+    int assignValue(bool a_fValue) RT_NOEXCEPT;
     /** Safe value assignment method, int64_t variant. */
-    int assignValue(int64_t a_iValue);
+    int assignValue(int64_t a_iValue) RT_NOEXCEPT;
     /** Safe value assignment method, int32_t variant. */
-    int assignValue(int32_t a_iValue);
+    int assignValue(int32_t a_iValue) RT_NOEXCEPT;
     /** Safe value assignment method, int16_t variant. */
-    int assignValue(int16_t a_iValue);
+    int assignValue(int16_t a_iValue) RT_NOEXCEPT;
     /** Safe value assignment method, double variant. */
-    int assignValue(double a_iValue);
+    int assignValue(double a_iValue) RT_NOEXCEPT;
     /** Safe value assignment method, string variant. */
-    int assignValue(RTCString const &a_rValue);
+    int assignValue(RTCString const &a_rValue) RT_NOEXCEPT;
     /** Safe value assignment method, C-string variant. */
-    int assignValue(const char *a_pszValue);
+    int assignValue(const char *a_pszValue) RT_NOEXCEPT;
 
     /** Make a clone of this object. */
-    inline RTCRestAnyObject *clone() const { return (RTCRestAnyObject *)baseClone(); }
+    inline RTCRestAnyObject *clone() const RT_NOEXCEPT { return (RTCRestAnyObject *)baseClone(); }
 
     /* Overridden methods: */
-    virtual RTCRestObjectBase *baseClone() const RT_OVERRIDE;
-    virtual int setNull(void) RT_OVERRIDE;
-    virtual int resetToDefault() RT_OVERRIDE;
-    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_OVERRIDE;
-    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
-    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = kCollectionFormat_Unspecified) const RT_OVERRIDE;
+    virtual RTCRestObjectBase *baseClone() const RT_NOEXCEPT RT_OVERRIDE;
+    virtual int setNull(void) RT_NOEXCEPT RT_OVERRIDE;
+    virtual int resetToDefault() RT_NOEXCEPT RT_OVERRIDE;
+    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT RT_OVERRIDE;
+    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT RT_OVERRIDE;
+    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = kCollectionFormat_Unspecified) const RT_NOEXCEPT RT_OVERRIDE;
     virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
-                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_OVERRIDE;
-    virtual kTypeClass typeClass(void) const RT_OVERRIDE;
-    virtual const char *typeName(void) const RT_OVERRIDE;
+                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_NOEXCEPT RT_OVERRIDE;
+    virtual kTypeClass typeClass(void) const RT_NOEXCEPT RT_OVERRIDE;
+    virtual const char *typeName(void) const RT_NOEXCEPT RT_OVERRIDE;
 
     /** Factory method. */
-    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void);
+    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void) RT_NOEXCEPT;
     /** Deserialization w/ instantiation. */
     static FNDESERIALIZEINSTANCEFROMJSON deserializeInstanceFromJson;
Index: /trunk/include/iprt/cpp/restarray.h
===================================================================
--- /trunk/include/iprt/cpp/restarray.h	(revision 74424)
+++ /trunk/include/iprt/cpp/restarray.h	(revision 74425)
@@ -42,23 +42,23 @@
 public:
     /** Default destructor. */
-    RTCRestArrayBase();
+    RTCRestArrayBase() RT_NOEXCEPT;
     /** Destructor. */
     virtual ~RTCRestArrayBase();
 
     /* Overridden methods: */
-    virtual RTCRestObjectBase *baseClone() const RT_OVERRIDE;
-    virtual int resetToDefault() RT_OVERRIDE;
-    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_OVERRIDE;
-    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
-    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = kCollectionFormat_Unspecified) const RT_OVERRIDE;
+    virtual RTCRestObjectBase *baseClone() const RT_NOEXCEPT RT_OVERRIDE;
+    virtual int resetToDefault() RT_NOEXCEPT RT_OVERRIDE;
+    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT RT_OVERRIDE;
+    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT RT_OVERRIDE;
+    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = kCollectionFormat_Unspecified) const RT_NOEXCEPT RT_OVERRIDE;
     virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
-                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_OVERRIDE;
-    virtual kTypeClass typeClass(void) const RT_OVERRIDE;
-    virtual const char *typeName(void) const RT_OVERRIDE;
+                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_NOEXCEPT RT_OVERRIDE;
+    virtual kTypeClass typeClass(void) const RT_NOEXCEPT RT_OVERRIDE;
+    virtual const char *typeName(void) const RT_NOEXCEPT RT_OVERRIDE;
 
     /**
      * Clear the content of the map.
      */
-    void clear();
+    void clear() RT_NOEXCEPT;
 
     /**
@@ -67,5 +67,5 @@
      * @return   True if there is more than zero items, false otherwise.
      */
-    inline bool isEmpty() const
+    inline bool isEmpty() const RT_NOEXCEPT
     {
         return m_cElements == 0;
@@ -75,5 +75,5 @@
      * Gets the number of entries in the map.
      */
-    inline size_t size() const
+    inline size_t size() const RT_NOEXCEPT
     {
         return m_cElements;
@@ -86,5 +86,5 @@
      * @param   a_idx           The array index.
      */
-    inline RTCRestObjectBase *atBase(size_t a_idx)
+    inline RTCRestObjectBase *atBase(size_t a_idx) RT_NOEXCEPT
     {
         if (a_idx < m_cElements)
@@ -99,5 +99,5 @@
      * @param   a_idx           The array index.
      */
-    inline RTCRestObjectBase const *atBase(size_t a_idx) const
+    inline RTCRestObjectBase const *atBase(size_t a_idx) const RT_NOEXCEPT
     {
         if (a_idx < m_cElements)
@@ -112,5 +112,5 @@
      *                      The value ~(size_t)0 is an alias for the final element.
      */
-    bool removeAt(size_t a_idx);
+    bool removeAt(size_t a_idx) RT_NOEXCEPT;
 
     /**
@@ -120,5 +120,5 @@
      * @param   a_cEnsureCapacity   The number of elements to ensure capacity to hold.
      */
-    int ensureCapacity(size_t a_cEnsureCapacity);
+    int ensureCapacity(size_t a_cEnsureCapacity) RT_NOEXCEPT;
 
 
@@ -137,5 +137,5 @@
      * @returns Pointer to new array on success, NULL if out of memory.
      */
-    virtual RTCRestArrayBase *createClone(void) const = 0;
+    virtual RTCRestArrayBase *createClone(void) const RT_NOEXCEPT = 0;
 
     /**
@@ -144,13 +144,13 @@
      * @returns Pointer to new value object on success, NULL if out of memory.
      */
-    virtual RTCRestObjectBase *createValue(void) = 0;
+    virtual RTCRestObjectBase *createValue(void) RT_NOEXCEPT = 0;
 
     /**
      * For accessing the static deserializeInstanceFromJson() method of the value.
      */
-    virtual int deserializeValueInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) = 0;
-
-    /**
-     * Worker for the copy constructor and the assignment operator.
+    virtual int deserializeValueInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT = 0;
+
+    /**
+     * Worker for the copy assignment method and copyArrayWorkerMayThrow().
      *
      * This will use createEntryCopy to do the copying.
@@ -159,7 +159,12 @@
      * @param   a_rThat     The array to copy.  Caller makes 100% sure the it has
      *                      the same type as the destination.
-     * @param   a_fThrow    Whether to throw error.
-     */
-    int copyArrayWorker(RTCRestArrayBase const &a_rThat, bool a_fThrow);
+     */
+    int copyArrayWorkerNoThrow(RTCRestArrayBase const &a_rThat) RT_NOEXCEPT;
+
+    /**
+     * Wrapper around copyArrayWorkerNoThrow for the copy constructor and the
+     * assignment operator.
+     */
+    void copyArrayWorkerMayThrow(RTCRestArrayBase const &a_rThat);
 
     /**
@@ -172,5 +177,5 @@
      * @param   a_fReplace      Whether to replace existing entry rather than insert.
      */
-    int insertWorker(size_t a_idx, RTCRestObjectBase *a_pValue, bool a_fReplace);
+    int insertWorker(size_t a_idx, RTCRestObjectBase *a_pValue, bool a_fReplace) RT_NOEXCEPT;
 
     /**
@@ -183,5 +188,5 @@
      * @param   a_fReplace      Whether to replace existing key-value pair with matching key.
      */
-    int insertCopyWorker(size_t a_idx, RTCRestObjectBase const &a_rValue, bool a_fReplace);
+    int insertCopyWorker(size_t a_idx, RTCRestObjectBase const &a_rValue, bool a_fReplace) RT_NOEXCEPT;
 
 private:
@@ -201,5 +206,5 @@
 public:
     /** Default constructor - empty array. */
-    RTCRestArray()
+    RTCRestArray() RT_NOEXCEPT
         : RTCRestArrayBase()
     {
@@ -215,5 +220,5 @@
         : RTCRestArrayBase()
     {
-        copyArrayWorker(a_rThat, true /*fThrow*/);
+        copyArrayWorkerMayThrow(a_rThat);
     }
 
@@ -221,16 +226,16 @@
     inline RTCRestArray &operator=(RTCRestArray const &a_rThat)
     {
-        copyArrayWorker(a_rThat, true /*fThrow*/);
+        copyArrayWorkerMayThrow(a_rThat);
         return *this;
     }
 
     /** Safe copy assignment method. */
-    inline int assignCopy(RTCRestArray const &a_rThat)
-    {
-        return copyArrayWorker(a_rThat, false /*fThrow*/);
+    inline int assignCopy(RTCRestArray const &a_rThat) RT_NOEXCEPT
+    {
+        return copyArrayWorkerNoThrow(a_rThat);
     }
 
     /** Make a clone of this object. */
-    inline RTCRestArray *clone() const
+    inline RTCRestArray *clone() const RT_NOEXCEPT
     {
         return (RTCRestArray *)baseClone();
@@ -238,5 +243,5 @@
 
     /** Factory method. */
-    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void)
+    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void) RT_NOEXCEPT
     {
         return new (std::nothrow) RTCRestArray<ElementType>();
@@ -244,5 +249,5 @@
 
     /** Factory method for elements. */
-    static DECLCALLBACK(RTCRestObjectBase *) createElementInstance(void)
+    static DECLCALLBACK(RTCRestObjectBase *) createElementInstance(void) RT_NOEXCEPT
     {
         return new (std::nothrow) ElementType();
@@ -250,5 +255,5 @@
 
     /** @copydoc RTCRestObjectBase::FNDESERIALIZEINSTANCEFROMJSON */
-    static DECLCALLBACK(int) deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance)
+    static DECLCALLBACK(int) deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT
     {
         *a_ppInstance = new (std::nothrow) RTCRestArray<ElementType>();
@@ -267,5 +272,5 @@
      * @param   a_pThat         The object to insert.  The array takes ownership of the object on success.
      */
-    inline int insert(size_t a_idx, ElementType *a_pThat)
+    inline int insert(size_t a_idx, ElementType *a_pThat) RT_NOEXCEPT
     {
         return insertWorker(a_idx, a_pThat, false /*a_fReplace*/);
@@ -280,5 +285,5 @@
      * @param   a_rThat         The object to insert a copy of.
      */
-    inline int insertCopy(size_t a_idx, ElementType const &a_rThat)
+    inline int insertCopy(size_t a_idx, ElementType const &a_rThat) RT_NOEXCEPT
     {
         return insertCopyWorker(a_idx, a_rThat, false /*a_fReplace*/);
@@ -292,5 +297,5 @@
      * @param   a_pThat         The object to insert.  The array takes ownership of the object on success.
      */
-    inline int append(ElementType *a_pThat)
+    inline int append(ElementType *a_pThat) RT_NOEXCEPT
     {
         return insertWorker(~(size_t)0, a_pThat, false /*a_fReplace*/);
@@ -304,5 +309,5 @@
      * @param   a_rThat         The object to insert a copy of.
      */
-    inline int appendCopy(ElementType const &a_rThat)
+    inline int appendCopy(ElementType const &a_rThat) RT_NOEXCEPT
     {
         return insertCopyWorker(~(size_t)0, a_rThat, false /*a_fReplace*/);
@@ -316,5 +321,5 @@
      * @param   a_pThat         The object to insert.  The array takes ownership of the object on success.
      */
-    inline int prepend(ElementType *a_pThat)
+    inline int prepend(ElementType *a_pThat) RT_NOEXCEPT
     {
         return insertWorker(0, a_pThat, false /*a_fReplace*/);
@@ -328,5 +333,5 @@
      * @param   a_rThat         The object to insert a copy of.
      */
-    inline int prependCopy(ElementType const &a_rThat)
+    inline int prependCopy(ElementType const &a_rThat) RT_NOEXCEPT
     {
         return insertCopyWorker(0, a_rThat, false /*a_fReplace*/);
@@ -341,5 +346,5 @@
      * @param   a_pThat         The replacement object.  The array takes ownership of the object on success.
      */
-    inline int replace(size_t a_idx, ElementType *a_pThat)
+    inline int replace(size_t a_idx, ElementType *a_pThat) RT_NOEXCEPT
     {
         return insertWorker(a_idx, a_pThat, true /*a_fReplace*/);
@@ -354,5 +359,5 @@
      * @param   a_rThat         The object to insert a copy of.
      */
-    inline int replaceCopy(size_t a_idx, ElementType const &a_rThat)
+    inline int replaceCopy(size_t a_idx, ElementType const &a_rThat) RT_NOEXCEPT
     {
         return insertCopyWorker(a_idx, a_rThat, true /*a_fReplace*/);
@@ -365,5 +370,5 @@
      * @param   a_idx           The array index.
      */
-    inline ElementType *at(size_t a_idx)
+    inline ElementType *at(size_t a_idx) RT_NOEXCEPT
     {
         if (a_idx < m_cElements)
@@ -378,5 +383,5 @@
      * @param   a_idx           The array index.
      */
-    inline ElementType const *at(size_t a_idx) const
+    inline ElementType const *at(size_t a_idx) const RT_NOEXCEPT
     {
         if (a_idx < m_cElements)
@@ -389,5 +394,5 @@
      * @returns The first object, NULL if empty.
      */
-    inline ElementType *first()
+    inline ElementType *first() RT_NOEXCEPT
     {
         return at(0);
@@ -398,5 +403,5 @@
      * @returns The first object, NULL if empty.
      */
-    inline ElementType const *first() const
+    inline ElementType const *first() const RT_NOEXCEPT
     {
         return at(0);
@@ -407,5 +412,5 @@
      * @returns The last object, NULL if empty.
      */
-    inline ElementType *last()
+    inline ElementType *last() RT_NOEXCEPT
     {
         return at(m_cElements - 1);
@@ -416,5 +421,5 @@
      * @returns The last object, NULL if empty.
      */
-    inline ElementType const *last() const
+    inline ElementType const *last() const RT_NOEXCEPT
     {
         return at(m_cElements - 1);
@@ -423,15 +428,15 @@
 
 protected:
-    virtual RTCRestArrayBase *createClone(void) const RT_OVERRIDE
+    virtual RTCRestArrayBase *createClone(void) const RT_NOEXCEPT RT_OVERRIDE
     {
         return new (std::nothrow) RTCRestArray();
     }
 
-    virtual RTCRestObjectBase *createValue(void) RT_OVERRIDE
+    virtual RTCRestObjectBase *createValue(void) RT_NOEXCEPT RT_OVERRIDE
     {
         return new (std::nothrow) ElementType();
     }
 
-    virtual int deserializeValueInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_OVERRIDE
+    virtual int deserializeValueInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT RT_OVERRIDE
     {
         return ElementType::deserializeInstanceFromJson(a_rCursor, a_ppInstance);
Index: /trunk/include/iprt/cpp/restbase.h
===================================================================
--- /trunk/include/iprt/cpp/restbase.h	(revision 74424)
+++ /trunk/include/iprt/cpp/restbase.h	(revision 74425)
@@ -61,13 +61,13 @@
     RTCRestJsonPrimaryCursor           *m_pPrimary;
 
-    RTCRestJsonCursor(struct RTCRestJsonCursor const &a_rParent)
+    RTCRestJsonCursor(struct RTCRestJsonCursor const &a_rParent) RT_NOEXCEPT
         : m_hValue(NIL_RTJSONVAL), m_pszName(NULL), m_pParent(&a_rParent), m_pPrimary(a_rParent.m_pPrimary)
     { }
 
-    RTCRestJsonCursor(RTJSONVAL hValue, const char *pszName, struct RTCRestJsonCursor *pParent)
+    RTCRestJsonCursor(RTJSONVAL hValue, const char *pszName, struct RTCRestJsonCursor *pParent) RT_NOEXCEPT
         : m_hValue(hValue), m_pszName(pszName), m_pParent(pParent), m_pPrimary(pParent->m_pPrimary)
     { }
 
-    RTCRestJsonCursor(RTJSONVAL hValue, const char *pszName)
+    RTCRestJsonCursor(RTJSONVAL hValue, const char *pszName) RT_NOEXCEPT
         : m_hValue(hValue), m_pszName(pszName), m_pParent(NULL), m_pPrimary(NULL)
     { }
@@ -96,5 +96,5 @@
 
     /** Creates a primary json cursor with optiona error info. */
-    RTCRestJsonPrimaryCursor(RTJSONVAL hValue, const char *pszName, PRTERRINFO pErrInfo = NULL)
+    RTCRestJsonPrimaryCursor(RTJSONVAL hValue, const char *pszName, PRTERRINFO pErrInfo = NULL) RT_NOEXCEPT
         : m_Cursor(hValue, pszName)
         , m_pErrInfo(pErrInfo)
@@ -115,5 +115,5 @@
      * @param   ...             Format string arguments.
      */
-    virtual int addError(RTCRestJsonCursor const &a_rCursor, int a_rc, const char *a_pszFormat, ...);
+    virtual int addError(RTCRestJsonCursor const &a_rCursor, int a_rc, const char *a_pszFormat, ...) RT_NOEXCEPT;
 
     /**
@@ -123,5 +123,5 @@
      * @param   a_rCursor       The cursor for the field.
      */
-    virtual int unknownField(RTCRestJsonCursor const &a_rCursor);
+    virtual int unknownField(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT;
 
     /**
@@ -133,5 +133,5 @@
      * @param   a_cbDst         Size of the destination buffer.
      */
-    virtual char *getPath(RTCRestJsonCursor const &a_rCursor, char *a_pszDst, size_t a_cbDst) const;
+    virtual char *getPath(RTCRestJsonCursor const &a_rCursor, char *a_pszDst, size_t a_cbDst) const RT_NOEXCEPT;
 };
 
@@ -146,6 +146,6 @@
 {
 public:
-    RTCRestObjectBase();
-    RTCRestObjectBase(RTCRestObjectBase const &a_rThat);
+    RTCRestObjectBase() RT_NOEXCEPT;
+    RTCRestObjectBase(RTCRestObjectBase const &a_rThat) RT_NOEXCEPT;
     virtual ~RTCRestObjectBase();
 
@@ -155,5 +155,5 @@
      * @returns Pointer to copy.
      */
-    virtual RTCRestObjectBase *baseClone() const = 0;
+    virtual RTCRestObjectBase *baseClone() const RT_NOEXCEPT = 0;
 
     /**
@@ -161,5 +161,5 @@
      * @returns true if null, false if not.
      */
-    inline bool isNull(void) const { return m_fNullIndicator; };
+    inline bool isNull(void) const RT_NOEXCEPT { return m_fNullIndicator; };
 
     /**
@@ -167,5 +167,5 @@
      * @returns IPRT status code (from resetToDefault).
      */
-    virtual int setNull(void);
+    virtual int setNull(void) RT_NOEXCEPT;
 
     /**
@@ -173,5 +173,5 @@
      * @remarks Only really important for strings.
      */
-    virtual void setNotNull(void);
+    virtual void setNotNull(void) RT_NOEXCEPT;
 
     /**
@@ -179,5 +179,5 @@
      * @returns IPRT status code.
      */
-    virtual int resetToDefault() = 0;
+    virtual int resetToDefault() RT_NOEXCEPT = 0;
 
     /**
@@ -187,5 +187,5 @@
      * @param   a_rDst      The destination for the serialization.
      */
-    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const = 0;
+    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT = 0;
 
     /**
@@ -195,5 +195,5 @@
      * @param   a_rCursor    The JSON cursor.
      */
-    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) = 0;
+    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT = 0;
 
     /**
@@ -242,5 +242,5 @@
      * @param   a_fFlags    kCollectionFormat_xxx.
      */
-    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = kCollectionFormat_Unspecified) const;
+    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = kCollectionFormat_Unspecified) const RT_NOEXCEPT;
 
     /**
@@ -263,5 +263,5 @@
      */
     virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
-                           uint32_t a_fFlags = kCollectionFormat_Unspecified);
+                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_NOEXCEPT;
 
     /** Type classification */
@@ -288,10 +288,10 @@
      * Returns the object type class.
      */
-    virtual kTypeClass typeClass(void) const = 0;
+    virtual kTypeClass typeClass(void) const RT_NOEXCEPT = 0;
 
     /**
      * Returns the object type name.
      */
-    virtual const char *typeName(void) const = 0;
+    virtual const char *typeName(void) const RT_NOEXCEPT = 0;
 
 protected:
@@ -314,35 +314,35 @@
 public:
     /** Default constructor. */
-    RTCRestBool();
+    RTCRestBool() RT_NOEXCEPT;
     /** Copy constructor. */
-    RTCRestBool(RTCRestBool const &a_rThat);
+    RTCRestBool(RTCRestBool const &a_rThat) RT_NOEXCEPT;
     /** From value constructor. */
-    RTCRestBool(bool fValue);
+    RTCRestBool(bool fValue) RT_NOEXCEPT;
     /** Destructor. */
     virtual ~RTCRestBool();
     /** Copy assignment operator. */
-    RTCRestBool &operator=(RTCRestBool const &a_rThat);
-    /** Safe copy assignment method. */
-    int assignCopy(RTCRestBool const &a_rThat);
+    RTCRestBool &operator=(RTCRestBool const &a_rThat) RT_NOEXCEPT;
+    /** Safe copy assignment method. */
+    int assignCopy(RTCRestBool const &a_rThat) RT_NOEXCEPT;
     /** Assign value and clear null indicator. */
-    void assignValue(bool a_fValue);
+    void assignValue(bool a_fValue) RT_NOEXCEPT;
     /** Make a clone of this object. */
-    inline RTCRestBool *clone() const { return (RTCRestBool *)baseClone(); }
+    inline RTCRestBool *clone() const RT_NOEXCEPT { return (RTCRestBool *)baseClone(); }
 
     /* Overridden methods: */
-    virtual RTCRestObjectBase *baseClone() const RT_OVERRIDE;
-    virtual int resetToDefault() RT_OVERRIDE;
-    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_OVERRIDE;
-    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
-    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = 0) const RT_OVERRIDE;
+    virtual RTCRestObjectBase *baseClone() const RT_NOEXCEPT RT_OVERRIDE;
+    virtual int resetToDefault() RT_NOEXCEPT RT_OVERRIDE;
+    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT RT_OVERRIDE;
+    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT RT_OVERRIDE;
+    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = 0) const RT_NOEXCEPT RT_OVERRIDE;
     virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
-                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_OVERRIDE;
-    virtual kTypeClass typeClass(void) const RT_OVERRIDE;
-    virtual const char *typeName(void) const RT_OVERRIDE;
+                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_NOEXCEPT RT_OVERRIDE;
+    virtual kTypeClass typeClass(void) const RT_NOEXCEPT RT_OVERRIDE;
+    virtual const char *typeName(void) const RT_NOEXCEPT RT_OVERRIDE;
 
     /** Factory method. */
-    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void);
-    /** Deserialization w/ instantiation. */
-    static FNDESERIALIZEINSTANCEFROMJSON deserializeInstanceFromJson;
+    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void) RT_NOEXCEPT;
+    /** @copydoc RTCRestObjectBase::FNDESERIALIZEINSTANCEFROMJSON */
+    static DECLCALLBACK(int) deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT;
 
 public:
@@ -359,35 +359,35 @@
 public:
     /** Default constructor. */
-    RTCRestInt64();
+    RTCRestInt64() RT_NOEXCEPT;
     /** Copy constructor. */
-    RTCRestInt64(RTCRestInt64 const &a_rThat);
+    RTCRestInt64(RTCRestInt64 const &a_rThat) RT_NOEXCEPT;
     /** From value constructor. */
-    RTCRestInt64(int64_t a_iValue);
+    RTCRestInt64(int64_t a_iValue) RT_NOEXCEPT;
     /** Destructor. */
     virtual ~RTCRestInt64();
     /** Copy assignment operator. */
-    RTCRestInt64 &operator=(RTCRestInt64 const &a_rThat);
-    /** Safe copy assignment method. */
-    int assignCopy(RTCRestInt64 const &a_rThat);
+    RTCRestInt64 &operator=(RTCRestInt64 const &a_rThat) RT_NOEXCEPT;
+    /** Safe copy assignment method. */
+    int assignCopy(RTCRestInt64 const &a_rThat) RT_NOEXCEPT;
     /** Assign value and clear null indicator. */
-    void assignValue(int64_t a_iValue);
+    void assignValue(int64_t a_iValue) RT_NOEXCEPT;
     /** Make a clone of this object. */
-    inline RTCRestInt64 *clone() const { return (RTCRestInt64 *)baseClone(); }
+    inline RTCRestInt64 *clone() const RT_NOEXCEPT { return (RTCRestInt64 *)baseClone(); }
 
     /* Overridden methods: */
-    virtual RTCRestObjectBase *baseClone() const RT_OVERRIDE;
-    virtual int resetToDefault() RT_OVERRIDE;
-    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_OVERRIDE;
-    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
-    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = 0) const RT_OVERRIDE;
+    virtual RTCRestObjectBase *baseClone() const RT_NOEXCEPT RT_OVERRIDE;
+    virtual int resetToDefault() RT_NOEXCEPT RT_OVERRIDE;
+    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT RT_OVERRIDE;
+    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT RT_OVERRIDE;
+    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = 0) const RT_NOEXCEPT RT_OVERRIDE;
     virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
-                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_OVERRIDE;
-    virtual kTypeClass typeClass(void) const RT_OVERRIDE;
-    virtual const char *typeName(void) const RT_OVERRIDE;
+                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_NOEXCEPT RT_OVERRIDE;
+    virtual kTypeClass typeClass(void) const RT_NOEXCEPT RT_OVERRIDE;
+    virtual const char *typeName(void) const RT_NOEXCEPT RT_OVERRIDE;
 
     /** Factory method. */
-    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void);
-    /** Deserialization w/ instantiation. */
-    static FNDESERIALIZEINSTANCEFROMJSON deserializeInstanceFromJson;
+    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void) RT_NOEXCEPT;
+    /** @copydoc RTCRestObjectBase::FNDESERIALIZEINSTANCEFROMJSON */
+    static DECLCALLBACK(int) deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT;
 
 public:
@@ -404,35 +404,35 @@
 public:
     /** Default constructor. */
-    RTCRestInt32();
+    RTCRestInt32() RT_NOEXCEPT;
     /** Copy constructor. */
-    RTCRestInt32(RTCRestInt32 const &a_rThat);
+    RTCRestInt32(RTCRestInt32 const &a_rThat) RT_NOEXCEPT;
     /** From value constructor. */
-    RTCRestInt32(int32_t iValue);
+    RTCRestInt32(int32_t iValue) RT_NOEXCEPT;
     /** Destructor. */
-    virtual ~RTCRestInt32();
+    virtual ~RTCRestInt32() RT_NOEXCEPT;
     /** Copy assignment operator. */
-    RTCRestInt32 &operator=(RTCRestInt32 const &a_rThat);
-    /** Safe copy assignment method. */
-    int assignCopy(RTCRestInt32 const &a_rThat);
+    RTCRestInt32 &operator=(RTCRestInt32 const &a_rThat) RT_NOEXCEPT;
+    /** Safe copy assignment method. */
+    int assignCopy(RTCRestInt32 const &a_rThat) RT_NOEXCEPT;
     /** Assign value and clear null indicator. */
-    void assignValue(int32_t a_iValue);
+    void assignValue(int32_t a_iValue) RT_NOEXCEPT;
     /** Make a clone of this object. */
     inline RTCRestInt32 *clone() const { return (RTCRestInt32 *)baseClone(); }
 
     /* Overridden methods: */
-    virtual RTCRestObjectBase *baseClone() const RT_OVERRIDE;
-    virtual int resetToDefault() RT_OVERRIDE;
-    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_OVERRIDE;
-    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
-    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = 0) const RT_OVERRIDE;
+    virtual RTCRestObjectBase *baseClone() const RT_NOEXCEPT RT_OVERRIDE;
+    virtual int resetToDefault() RT_NOEXCEPT RT_OVERRIDE;
+    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT RT_OVERRIDE;
+    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT RT_OVERRIDE;
+    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = 0) const RT_NOEXCEPT RT_OVERRIDE;
     virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
-                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_OVERRIDE;
-    virtual kTypeClass typeClass(void) const RT_OVERRIDE;
-    virtual const char *typeName(void) const RT_OVERRIDE;
+                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_NOEXCEPT RT_OVERRIDE;
+    virtual kTypeClass typeClass(void) const RT_NOEXCEPT RT_OVERRIDE;
+    virtual const char *typeName(void) const RT_NOEXCEPT RT_OVERRIDE;
 
     /** Factory method. */
-    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void);
-    /** Deserialization w/ instantiation. */
-    static FNDESERIALIZEINSTANCEFROMJSON deserializeInstanceFromJson;
+    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void) RT_NOEXCEPT;
+    /** @copydoc RTCRestObjectBase::FNDESERIALIZEINSTANCEFROMJSON */
+    static DECLCALLBACK(int) deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT;
 
 public:
@@ -449,35 +449,35 @@
 public:
     /** Default constructor. */
-    RTCRestInt16();
+    RTCRestInt16() RT_NOEXCEPT;
     /** Copy constructor. */
-    RTCRestInt16(RTCRestInt16 const &a_rThat);
+    RTCRestInt16(RTCRestInt16 const &a_rThat) RT_NOEXCEPT;
     /** From value constructor. */
-    RTCRestInt16(int16_t iValue);
+    RTCRestInt16(int16_t iValue) RT_NOEXCEPT;
     /** Destructor. */
     virtual ~RTCRestInt16();
     /** Copy assignment operator. */
-    RTCRestInt16 &operator=(RTCRestInt16 const &a_rThat);
-    /** Safe copy assignment method. */
-    int assignCopy(RTCRestInt16 const &a_rThat);
+    RTCRestInt16 &operator=(RTCRestInt16 const &a_rThat) RT_NOEXCEPT;
+    /** Safe copy assignment method. */
+    int assignCopy(RTCRestInt16 const &a_rThat) RT_NOEXCEPT;
     /** Assign value and clear null indicator. */
-    void assignValue(int16_t a_iValue);
+    void assignValue(int16_t a_iValue) RT_NOEXCEPT;
     /** Make a clone of this object. */
-    inline RTCRestInt16 *clone() const { return (RTCRestInt16 *)baseClone(); }
+    inline RTCRestInt16 *clone() const RT_NOEXCEPT { return (RTCRestInt16 *)baseClone(); }
 
     /* Overridden methods: */
-    virtual RTCRestObjectBase *baseClone() const RT_OVERRIDE;
-    virtual int resetToDefault() RT_OVERRIDE;
-    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_OVERRIDE;
-    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
-    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = 0) const RT_OVERRIDE;
+    virtual RTCRestObjectBase *baseClone() const RT_NOEXCEPT RT_OVERRIDE;
+    virtual int resetToDefault() RT_NOEXCEPT RT_OVERRIDE;
+    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT RT_OVERRIDE;
+    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT RT_OVERRIDE;
+    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = 0) const RT_NOEXCEPT RT_OVERRIDE;
     virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
-                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_OVERRIDE;
-    virtual kTypeClass typeClass(void) const RT_OVERRIDE;
-    virtual const char *typeName(void) const RT_OVERRIDE;
+                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_NOEXCEPT RT_OVERRIDE;
+    virtual kTypeClass typeClass(void) const RT_NOEXCEPT RT_OVERRIDE;
+    virtual const char *typeName(void) const RT_NOEXCEPT RT_OVERRIDE;
 
     /** Factory method. */
-    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void);
-    /** Deserialization w/ instantiation. */
-    static FNDESERIALIZEINSTANCEFROMJSON deserializeInstanceFromJson;
+    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void) RT_NOEXCEPT;
+    /** @copydoc RTCRestObjectBase::FNDESERIALIZEINSTANCEFROMJSON */
+    static DECLCALLBACK(int) deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT;
 
 public:
@@ -494,35 +494,35 @@
 public:
     /** Default constructor. */
-    RTCRestDouble();
+    RTCRestDouble() RT_NOEXCEPT;
     /** Copy constructor. */
-    RTCRestDouble(RTCRestDouble const &a_rThat);
+    RTCRestDouble(RTCRestDouble const &a_rThat) RT_NOEXCEPT;
     /** From value constructor. */
-    RTCRestDouble(double rdValue);
+    RTCRestDouble(double rdValue) RT_NOEXCEPT;
     /** Destructor. */
     virtual ~RTCRestDouble();
     /** Copy assignment operator. */
-    RTCRestDouble &operator=(RTCRestDouble const &a_rThat);
-    /** Safe copy assignment method. */
-    int assignCopy(RTCRestDouble const &a_rThat);
+    RTCRestDouble &operator=(RTCRestDouble const &a_rThat) RT_NOEXCEPT;
+    /** Safe copy assignment method. */
+    int assignCopy(RTCRestDouble const &a_rThat) RT_NOEXCEPT;
     /** Assign value and clear null indicator. */
-    void assignValue(double a_rdValue);
+    void assignValue(double a_rdValue) RT_NOEXCEPT;
     /** Make a clone of this object. */
-    inline RTCRestDouble *clone() const { return (RTCRestDouble *)baseClone(); }
+    inline RTCRestDouble *clone() const RT_NOEXCEPT { return (RTCRestDouble *)baseClone(); }
 
     /* Overridden methods: */
-    virtual RTCRestObjectBase *baseClone() const RT_OVERRIDE;
-    virtual int resetToDefault() RT_OVERRIDE;
-    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_OVERRIDE;
-    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
-    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = 0) const RT_OVERRIDE;
+    virtual RTCRestObjectBase *baseClone() const RT_NOEXCEPT RT_OVERRIDE;
+    virtual int resetToDefault() RT_NOEXCEPT RT_OVERRIDE;
+    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT RT_OVERRIDE;
+    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT RT_OVERRIDE;
+    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = 0) const RT_NOEXCEPT RT_OVERRIDE;
     virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
-                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_OVERRIDE;
-    virtual kTypeClass typeClass(void) const RT_OVERRIDE;
-    virtual const char *typeName(void) const RT_OVERRIDE;
+                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_NOEXCEPT RT_OVERRIDE;
+    virtual kTypeClass typeClass(void) const RT_NOEXCEPT RT_OVERRIDE;
+    virtual const char *typeName(void) const RT_NOEXCEPT RT_OVERRIDE;
 
     /** Factory method. */
-    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void);
-    /** Deserialization w/ instantiation. */
-    static FNDESERIALIZEINSTANCEFROMJSON deserializeInstanceFromJson;
+    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void) RT_NOEXCEPT;
+    /** @copydoc RTCRestObjectBase::FNDESERIALIZEINSTANCEFROMJSON */
+    static DECLCALLBACK(int) deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT;
 
 public:
@@ -539,5 +539,5 @@
 public:
     /** Default constructor. */
-    RTCRestString();
+    RTCRestString() RT_NOEXCEPT;
     /** Destructor. */
     virtual ~RTCRestString();
@@ -550,28 +550,28 @@
     RTCRestString(const char *a_pszSrc);
     /** Safe copy assignment method. */
-    int assignCopy(RTCRestString const &a_rThat);
-    /** Safe copy assignment method. */
-    int assignCopy(RTCString const &a_rThat);
-    /** Safe copy assignment method. */
-    int assignCopy(const char *a_pszThat);
+    int assignCopy(RTCRestString const &a_rThat) RT_NOEXCEPT;
+    /** Safe copy assignment method. */
+    int assignCopy(RTCString const &a_rThat) RT_NOEXCEPT;
+    /** Safe copy assignment method. */
+    int assignCopy(const char *a_pszThat) RT_NOEXCEPT;
     /** Make a clone of this object. */
-    inline RTCRestString *clone() const { return (RTCRestString *)baseClone(); }
+    inline RTCRestString *clone() const RT_NOEXCEPT { return (RTCRestString *)baseClone(); }
 
     /* Overridden methods: */
-    virtual RTCRestObjectBase *baseClone() const RT_OVERRIDE;
-    virtual int setNull(void) RT_OVERRIDE; /* (ambigious, so overrider it to make sure.) */
-    virtual int resetToDefault() RT_OVERRIDE;
-    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_OVERRIDE;
-    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
-    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = kCollectionFormat_Unspecified) const RT_OVERRIDE;
+    virtual RTCRestObjectBase *baseClone() const RT_NOEXCEPT RT_OVERRIDE;
+    virtual int setNull(void) RT_NOEXCEPT RT_OVERRIDE; /* (ambigious, so overrider it to make sure.) */
+    virtual int resetToDefault() RT_NOEXCEPT RT_OVERRIDE;
+    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT RT_OVERRIDE;
+    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT RT_OVERRIDE;
+    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = kCollectionFormat_Unspecified) const RT_NOEXCEPT RT_OVERRIDE;
     virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
-                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_OVERRIDE;
-    virtual kTypeClass typeClass(void) const RT_OVERRIDE;
-    virtual const char *typeName(void) const RT_OVERRIDE;
+                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_NOEXCEPT RT_OVERRIDE;
+    virtual kTypeClass typeClass(void) const RT_NOEXCEPT RT_OVERRIDE;
+    virtual const char *typeName(void) const RT_NOEXCEPT RT_OVERRIDE;
 
     /** Factory method. */
-    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void);
-    /** Deserialization w/ instantiation. */
-    static FNDESERIALIZEINSTANCEFROMJSON deserializeInstanceFromJson;
+    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void) RT_NOEXCEPT;
+    /** @copydoc RTCRestObjectBase::FNDESERIALIZEINSTANCEFROMJSON */
+    static DECLCALLBACK(int) deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT;
 
     /** @name RTCString assignment methods we need to replace to manage the null indicator
@@ -615,5 +615,5 @@
     /** Default constructor.
      * @note The result is a null-object.   */
-    RTCRestDate();
+    RTCRestDate() RT_NOEXCEPT;
     /** Copy constructor. */
     RTCRestDate(RTCRestDate const &a_rThat);
@@ -623,23 +623,23 @@
     RTCRestDate &operator=(RTCRestDate const &a_rThat);
     /** Safe copy assignment method. */
-    int assignCopy(RTCRestDate const &a_rThat);
+    int assignCopy(RTCRestDate const &a_rThat) RT_NOEXCEPT;
     /** Make a clone of this object. */
-    inline RTCRestDate *clone() const { return (RTCRestDate *)baseClone(); }
+    inline RTCRestDate *clone() const  RT_NOEXCEPT{ return (RTCRestDate *)baseClone(); }
 
     /* Overridden methods: */
-    virtual RTCRestObjectBase *baseClone() const RT_OVERRIDE;
-    virtual int resetToDefault() RT_OVERRIDE;
-    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_OVERRIDE;
-    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
-    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = 0) const RT_OVERRIDE;
+    virtual RTCRestObjectBase *baseClone() const RT_NOEXCEPT RT_OVERRIDE;
+    virtual int resetToDefault() RT_NOEXCEPT RT_OVERRIDE;
+    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT RT_OVERRIDE;
+    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT RT_OVERRIDE;
+    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = 0) const RT_NOEXCEPT RT_OVERRIDE;
     virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
-                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_OVERRIDE;
-    virtual kTypeClass typeClass(void) const RT_OVERRIDE;
-    virtual const char *typeName(void) const RT_OVERRIDE;
+                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_NOEXCEPT RT_OVERRIDE;
+    virtual kTypeClass typeClass(void) const RT_NOEXCEPT RT_OVERRIDE;
+    virtual const char *typeName(void) const RT_NOEXCEPT RT_OVERRIDE;
 
     /** Factory method. */
-    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void);
-    /** Deserialization w/ instantiation. */
-    static FNDESERIALIZEINSTANCEFROMJSON deserializeInstanceFromJson;
+    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void) RT_NOEXCEPT;
+    /** @copydoc RTCRestObjectBase::FNDESERIALIZEINSTANCEFROMJSON */
+    static DECLCALLBACK(int) deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT;
 
     /** Date formats. */
@@ -664,8 +664,8 @@
      * @param   a_enmFormat     The date format to use when formatting it.
      */
-    int assignValue(PCRTTIMESPEC a_pTimeSpec, kFormat a_enmFormat);
-    int assignValueRfc2822(PCRTTIMESPEC a_pTimeSpec); /**< Convenience method for email/whatnot. */
-    int assignValueRfc7131(PCRTTIMESPEC a_pTimeSpec); /**< Convenience method for HTTP date. */
-    int assignValueRfc3339(PCRTTIMESPEC a_pTimeSpec); /**< Convenience method for ISO-8601 timstamp. */
+    int assignValue(PCRTTIMESPEC a_pTimeSpec, kFormat a_enmFormat) RT_NOEXCEPT;
+    int assignValueRfc2822(PCRTTIMESPEC a_pTimeSpec) RT_NOEXCEPT; /**< Convenience method for email/whatnot. */
+    int assignValueRfc7131(PCRTTIMESPEC a_pTimeSpec) RT_NOEXCEPT; /**< Convenience method for HTTP date. */
+    int assignValueRfc3339(PCRTTIMESPEC a_pTimeSpec) RT_NOEXCEPT; /**< Convenience method for ISO-8601 timstamp. */
 
     /**
@@ -676,8 +676,8 @@
      * @param   a_enmFormat     The date format to use when formatting it.
      */
-    int assignNow(kFormat a_enmFormat);
-    int assignNowRfc2822(); /**< Convenience method for email/whatnot. */
-    int assignNowRfc7131(); /**< Convenience method for HTTP date. */
-    int assignNowRfc3339(); /**< Convenience method for ISO-8601 timstamp. */
+    int assignNow(kFormat a_enmFormat) RT_NOEXCEPT;
+    int assignNowRfc2822() RT_NOEXCEPT; /**< Convenience method for email/whatnot. */
+    int assignNowRfc7131() RT_NOEXCEPT; /**< Convenience method for HTTP date. */
+    int assignNowRfc3339() RT_NOEXCEPT; /**< Convenience method for ISO-8601 timstamp. */
 
     /**
@@ -688,25 +688,25 @@
      * @param   a_enmFormat     The date format to try/set.
      */
-    int setFormat(kFormat a_enmFormat);
+    int setFormat(kFormat a_enmFormat) RT_NOEXCEPT;
 
     /** Check if the value is okay (m_TimeSpec & m_Exploded). */
-    inline bool              isOkay() const             { return m_fTimeSpecOkay; }
+    inline bool              isOkay() const RT_NOEXCEPT         { return m_fTimeSpecOkay; }
     /** Get the timespec value. */
-    inline RTTIMESPEC const &getTimeSpec() const        { return m_TimeSpec; }
+    inline RTTIMESPEC const &getTimeSpec() const RT_NOEXCEPT    { return m_TimeSpec; }
     /** Get the exploded time. */
-    inline RTTIME const     &getExploded() const        { return m_Exploded; }
+    inline RTTIME const     &getExploded() const RT_NOEXCEPT    { return m_Exploded; }
     /** Gets the format. */
-    inline kFormat           getFormat() const          { return m_enmFormat; }
+    inline kFormat           getFormat() const RT_NOEXCEPT      { return m_enmFormat; }
     /** Get the formatted/raw string value. */
-    inline RTCString const  &getString() const          { return m_strFormatted; }
+    inline RTCString const  &getString() const RT_NOEXCEPT      { return m_strFormatted; }
 
     /** Get nanoseconds since unix epoch. */
-    inline int64_t           getEpochNano() const       { return RTTimeSpecGetNano(&m_TimeSpec); }
+    inline int64_t           getEpochNano() const RT_NOEXCEPT   { return RTTimeSpecGetNano(&m_TimeSpec); }
     /** Get seconds since unix epoch. */
-    inline int64_t           getEpochSeconds() const    { return RTTimeSpecGetSeconds(&m_TimeSpec); }
+    inline int64_t           getEpochSeconds() const RT_NOEXCEPT { return RTTimeSpecGetSeconds(&m_TimeSpec); }
     /** Checks if UTC time. */
-    inline bool              isUtc() const              { return (m_Exploded.fFlags & RTTIME_FLAGS_TYPE_MASK) != RTTIME_FLAGS_TYPE_LOCAL; }
+    inline bool              isUtc() const RT_NOEXCEPT { return (m_Exploded.fFlags & RTTIME_FLAGS_TYPE_MASK) != RTTIME_FLAGS_TYPE_LOCAL; }
     /** Checks if local time. */
-    inline bool              isLocal() const            { return (m_Exploded.fFlags & RTTIME_FLAGS_TYPE_MASK) == RTTIME_FLAGS_TYPE_LOCAL; }
+    inline bool              isLocal() const RT_NOEXCEPT { return (m_Exploded.fFlags & RTTIME_FLAGS_TYPE_MASK) == RTTIME_FLAGS_TYPE_LOCAL; }
 
 protected:
@@ -732,5 +732,5 @@
      * @param   a_enmFormat The format to use.
      */
-    int explodeAndFormat(kFormat a_enmFormat);
+    int explodeAndFormat(kFormat a_enmFormat) RT_NOEXCEPT;
 
     /**
@@ -742,5 +742,5 @@
      * @param   a_enmFormat The format to use.
      */
-    int format(kFormat a_enmFormat);
+    int format(kFormat a_enmFormat) RT_NOEXCEPT;
 
     /**
@@ -752,5 +752,5 @@
      * @param   enmFormat   Specific format to try, kFormat_Invalid (default) to try guess it.
      */
-    int decodeFormattedString(kFormat enmFormat = kFormat_Invalid);
+    int decodeFormattedString(kFormat enmFormat = kFormat_Invalid) RT_NOEXCEPT;
 };
 
@@ -775,5 +775,5 @@
 
     /** Default constructor. */
-    RTCRestStringEnumBase();
+    RTCRestStringEnumBase() RT_NOEXCEPT;
     /** Destructor. */
     virtual ~RTCRestStringEnumBase();
@@ -785,18 +785,18 @@
 
     /** Safe copy assignment method. */
-    int assignCopy(RTCRestStringEnumBase const &a_rThat);
-    /** Safe copy assignment method. */
-    inline int assignCopy(RTCString const &a_rThat)    { return setByString(a_rThat); }
-    /** Safe copy assignment method. */
-    inline int assignCopy(const char *a_pszThat)       { return setByString(a_pszThat); }
+    int assignCopy(RTCRestStringEnumBase const &a_rThat) RT_NOEXCEPT;
+    /** Safe copy assignment method. */
+    inline int assignCopy(RTCString const &a_rThat) RT_NOEXCEPT    { return setByString(a_rThat); }
+    /** Safe copy assignment method. */
+    inline int assignCopy(const char *a_pszThat) RT_NOEXCEPT       { return setByString(a_pszThat); }
 
     /* Overridden methods: */
-    virtual int resetToDefault() RT_OVERRIDE;
-    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_OVERRIDE;
-    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
-    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = kCollectionFormat_Unspecified) const RT_OVERRIDE;
+    virtual int resetToDefault() RT_NOEXCEPT RT_OVERRIDE;
+    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT RT_OVERRIDE;
+    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT RT_OVERRIDE;
+    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = kCollectionFormat_Unspecified) const RT_NOEXCEPT RT_OVERRIDE;
     virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
-                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_OVERRIDE;
-    virtual kTypeClass typeClass(void) const RT_OVERRIDE;
+                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_NOEXCEPT RT_OVERRIDE;
+    virtual kTypeClass typeClass(void) const RT_NOEXCEPT RT_OVERRIDE;
 
     /**
@@ -809,5 +809,5 @@
      * @param   a_cchValue      The string value length.  Optional.
      */
-    int setByString(const char *a_pszValue, size_t a_cchValue = RTSTR_MAX);
+    int setByString(const char *a_pszValue, size_t a_cchValue = RTSTR_MAX) RT_NOEXCEPT;
 
     /**
@@ -819,17 +819,17 @@
      * @param   a_rValue        The string value.
      */
-    int setByString(RTCString const &a_rValue);
+    int setByString(RTCString const &a_rValue) RT_NOEXCEPT;
 
     /**
      * Gets the string value.
      */
-    const char *getString() const;
+    const char *getString() const RT_NOEXCEPT;
 
     /** Maps the given string value to an enum. */
-    int stringToEnum(const char *a_pszValue, size_t a_cchValue = RTSTR_MAX);
+    int stringToEnum(const char *a_pszValue, size_t a_cchValue = RTSTR_MAX) RT_NOEXCEPT;
     /** Maps the given string value to an enum. */
-    int stringToEnum(RTCString const &a_rStrValue);
+    int stringToEnum(RTCString const &a_rStrValue) RT_NOEXCEPT;
     /** Maps the given string value to an enum. */
-    const char *enumToString(int a_iEnumValue, size_t *a_pcchString);
+    const char *enumToString(int a_iEnumValue, size_t *a_pcchString) RT_NOEXCEPT;
 
 
@@ -847,8 +847,8 @@
      * @param   a_iEnumValue    The enum value to set.
      */
-    bool                setWorker(int a_iEnumValue);
+    bool                setWorker(int a_iEnumValue) RT_NOEXCEPT;
 
     /** Helper for implementing RTCRestObjectBase::clone(). */
-    RTCRestObjectBase  *cloneWorker(RTCRestStringEnumBase *a_pDst) const;
+    RTCRestObjectBase  *cloneWorker(RTCRestStringEnumBase *a_pDst) const RT_NOEXCEPT;
 
     /**
@@ -858,5 +858,5 @@
      * @param   pcEntries   Where to return the translation table size.
      */
-    virtual ENUMMAPENTRY const *getMappingTable(size_t *pcEntries) const = 0;
+    virtual ENUMMAPENTRY const *getMappingTable(size_t *pcEntries) const RT_NOEXCEPT = 0;
 };
 
@@ -874,7 +874,7 @@
 
     /** Default constructor */
-    RTCRestStringEnum() : RTCRestStringEnumBase() { }
+    RTCRestStringEnum() RT_NOEXCEPT : RTCRestStringEnumBase() { }
     /** Constructor with initial enum value. */
-    RTCRestStringEnum(Type a_enmValue) : RTCRestStringEnumBase() { set(a_enmValue); }
+    RTCRestStringEnum(Type a_enmValue) RT_NOEXCEPT : RTCRestStringEnumBase() { set(a_enmValue); }
     /** Constructor with string default. */
     RTCRestStringEnum(const char *a_pszDefault) : RTCRestStringEnumBase() { setByString(a_pszDefault); }
@@ -882,7 +882,10 @@
     RTCRestStringEnum(RTCRestStringEnum const &a_rThat) : RTCRestStringEnumBase(a_rThat) { }
     /** Make a clone of this object. */
-    inline RTCRestStringEnum *clone() const { return (RTCRestStringEnum *)baseClone(); }
-
-    virtual RTCRestObjectBase *baseClone() const RT_OVERRIDE { return cloneWorker(new (std::nothrow) RTCRestStringEnum()); }
+    inline RTCRestStringEnum *clone() const RT_NOEXCEPT { return (RTCRestStringEnum *)baseClone(); }
+
+    virtual RTCRestObjectBase *baseClone() const RT_NOEXCEPT RT_OVERRIDE
+    {
+        return cloneWorker(new (std::nothrow) RTCRestStringEnum());
+    }
 
     /**
@@ -892,5 +895,5 @@
      *          no value has been assigned yet.
      */
-    Type get() const { return (Type)m_iEnumValue; }
+    Type get() const RT_NOEXCEPT { return (Type)m_iEnumValue; }
 
     /**
@@ -900,10 +903,10 @@
      * @param   a_enmType   The new value.
      */
-    bool set(Type a_enmType) { return setWorker((int)a_enmType); }
-
-    virtual const char *typeName(void) const RT_OVERRIDE { return "RTCRestStringEnum<EnumType>"; }
+    bool set(Type a_enmType) RT_NOEXCEPT { return setWorker((int)a_enmType); }
+
+    virtual const char *typeName(void) const RT_NOEXCEPT RT_OVERRIDE { return "RTCRestStringEnum<EnumType>"; }
 
     /** Factory method. */
-    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void)
+    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void) RT_NOEXCEPT
     {
         return new (std::nothrow) RTCRestStringEnum();
@@ -911,5 +914,5 @@
 
     /** @copydoc RTCRestObjectBase::FNDESERIALIZEINSTANCEFROMJSON */
-    static DECLCALLBACK(int) deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance)
+    static DECLCALLBACK(int) deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT
     {
         *a_ppInstance = new (std::nothrow) RTCRestStringEnum();
@@ -925,5 +928,5 @@
     static const size_t       s_cMappingTable;
 
-    virtual ENUMMAPENTRY const *getMappingTable(size_t *pcEntries) const RT_OVERRIDE
+    virtual ENUMMAPENTRY const *getMappingTable(size_t *pcEntries) const RT_NOEXCEPT RT_OVERRIDE
     {
         *pcEntries = s_cMappingTable;
@@ -943,44 +946,44 @@
 public:
     /** Default constructor. */
-    RTCRestBinary();
+    RTCRestBinary() RT_NOEXCEPT;
     /** Destructor. */
     virtual ~RTCRestBinary();
 
     /** Safe copy assignment method. */
-    virtual int assignCopy(RTCRestBinary const &a_rThat);
+    virtual int assignCopy(RTCRestBinary const &a_rThat) RT_NOEXCEPT;
     /** Safe buffer copy method. */
-    virtual int assignCopy(void const *a_pvData, size_t a_cbData);
+    virtual int assignCopy(void const *a_pvData, size_t a_cbData) RT_NOEXCEPT;
 
     /** Use the specified data buffer directly. */
-    virtual int assignReadOnly(void const *a_pvData, size_t a_cbData);
+    virtual int assignReadOnly(void const *a_pvData, size_t a_cbData) RT_NOEXCEPT;
     /** Use the specified data buffer directly. */
-    virtual int assignWriteable(void *a_pvBuf, size_t a_cbBuf);
+    virtual int assignWriteable(void *a_pvBuf, size_t a_cbBuf) RT_NOEXCEPT;
     /** Frees the data held by the object and resets it default state. */
-    virtual void freeData();
+    virtual void freeData() RT_NOEXCEPT;
 
     /** Returns a pointer to the data blob. */
-    inline const uint8_t  *getPtr()  const { return m_pbData; }
+    inline const uint8_t  *getPtr()  const RT_NOEXCEPT { return m_pbData; }
     /** Gets the size of the data. */
-    inline size_t          getSize() const { return m_cbData; }
+    inline size_t          getSize() const RT_NOEXCEPT { return m_cbData; }
 
     /** Make a clone of this object. */
-    inline RTCRestBinary  *clone() const { return (RTCRestBinary *)baseClone(); }
+    inline RTCRestBinary  *clone() const RT_NOEXCEPT { return (RTCRestBinary *)baseClone(); }
 
     /* Overridden methods: */
-    virtual RTCRestObjectBase *baseClone() const RT_OVERRIDE;
-    virtual int setNull(void) RT_OVERRIDE;
-    virtual int resetToDefault(void) RT_OVERRIDE;
-    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_OVERRIDE;
-    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
-    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = kCollectionFormat_Unspecified) const RT_OVERRIDE;
+    virtual RTCRestObjectBase *baseClone() const RT_NOEXCEPT RT_OVERRIDE;
+    virtual int setNull(void) RT_NOEXCEPT RT_OVERRIDE;
+    virtual int resetToDefault(void) RT_NOEXCEPT RT_OVERRIDE;
+    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT RT_OVERRIDE;
+    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT RT_OVERRIDE;
+    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = kCollectionFormat_Unspecified) const RT_NOEXCEPT RT_OVERRIDE;
     virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
-                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_OVERRIDE;
-    virtual kTypeClass typeClass(void) const RT_OVERRIDE;
-    virtual const char *typeName(void) const RT_OVERRIDE;
+                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_NOEXCEPT RT_OVERRIDE;
+    virtual kTypeClass typeClass(void) const RT_NOEXCEPT RT_OVERRIDE;
+    virtual const char *typeName(void) const RT_NOEXCEPT RT_OVERRIDE;
 
     /** Factory method. */
-    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void);
-    /** Deserialization w/ instantiation. */
-    static FNDESERIALIZEINSTANCEFROMJSON deserializeInstanceFromJson;
+    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void) RT_NOEXCEPT;
+    /** @copydoc RTCRestObjectBase::FNDESERIALIZEINSTANCEFROMJSON */
+    static DECLCALLBACK(int) deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT;
 
 protected:
@@ -1009,13 +1012,13 @@
 {
 public:
-    RTCRestDataObject();
-    RTCRestDataObject(RTCRestDataObject const &a_rThat);
+    RTCRestDataObject() RT_NOEXCEPT;
+    RTCRestDataObject(RTCRestDataObject const &a_rThat) RT_NOEXCEPT;
     virtual ~RTCRestDataObject();
 
     /* Overridden methods:*/
-    virtual int resetToDefault() RT_OVERRIDE;
-    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_OVERRIDE;
-    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
-    virtual kTypeClass typeClass(void) const RT_OVERRIDE;
+    virtual int resetToDefault() RT_NOEXCEPT RT_OVERRIDE;
+    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT RT_OVERRIDE;
+    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT RT_OVERRIDE;
+    virtual kTypeClass typeClass(void) const RT_NOEXCEPT RT_OVERRIDE;
 
     /**
@@ -1025,5 +1028,5 @@
      * @param   a_rDst      The destination for the serialization.
      */
-    virtual RTCRestOutputBase &serializeMembersAsJson(RTCRestOutputBase &a_rDst) const;
+    virtual RTCRestOutputBase &serializeMembersAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT;
 
     /**
@@ -1037,5 +1040,5 @@
      * @param   a_cchName   The length of a_rCursor.m_pszName.
      */
-    virtual int deserializeMemberFromJson(RTCRestJsonCursor const &a_rCursor, size_t a_cchName);
+    virtual int deserializeMemberFromJson(RTCRestJsonCursor const &a_rCursor, size_t a_cchName) RT_NOEXCEPT;
 
 protected:
@@ -1044,8 +1047,8 @@
 
     /** Copy assignment operator. */
-    RTCRestDataObject &operator=(RTCRestDataObject const &a_rThat);
-
-    /** Safe copy assignment method. */
-    virtual int assignCopy(RTCRestDataObject const &a_rThat);
+    RTCRestDataObject &operator=(RTCRestDataObject const &a_rThat) RT_NOEXCEPT;
+
+    /** Safe copy assignment method. */
+    virtual int assignCopy(RTCRestDataObject const &a_rThat) RT_NOEXCEPT;
 };
 
@@ -1057,18 +1060,18 @@
 {
 public:
-    RTCRestPolyDataObject();
-    RTCRestPolyDataObject(RTCRestPolyDataObject const &a_rThat);
+    RTCRestPolyDataObject() RT_NOEXCEPT;
+    RTCRestPolyDataObject(RTCRestPolyDataObject const &a_rThat) RT_NOEXCEPT;
     virtual ~RTCRestPolyDataObject();
 
     /* Overridden methods:*/
-    virtual int resetToDefault() RT_OVERRIDE;
+    virtual int resetToDefault() RT_NOEXCEPT RT_OVERRIDE;
 
     /** Checks if the instance is of a child class (@c true) or of the parent (@c false). */
-    virtual bool isChild() const;
+    virtual bool isChild() const RT_NOEXCEPT;
 
 protected:
 
     /** Copy assignment operator. */
-    RTCRestPolyDataObject &operator=(RTCRestPolyDataObject const &a_rThat);
+    RTCRestPolyDataObject &operator=(RTCRestPolyDataObject const &a_rThat) RT_NOEXCEPT;
 };
 
Index: /trunk/include/iprt/cpp/restclient.h
===================================================================
--- /trunk/include/iprt/cpp/restclient.h	(revision 74424)
+++ /trunk/include/iprt/cpp/restclient.h	(revision 74425)
@@ -46,39 +46,39 @@
 public:
     /** Default constructor. */
-    RTCRestBinaryParameter();
+    RTCRestBinaryParameter() RT_NOEXCEPT;
 
     /** Safe copy assignment method. */
-    virtual int assignCopy(RTCRestBinaryParameter const &a_rThat);
+    virtual int assignCopy(RTCRestBinaryParameter const &a_rThat) RT_NOEXCEPT;
     /** Safe copy assignment method.
       * @note Resets callbacks and ASSUMES that @a a_cbData is the content length. */
-    virtual int assignCopy(RTCRestBinary const &a_rThat) RT_OVERRIDE;
+    virtual int assignCopy(RTCRestBinary const &a_rThat) RT_NOEXCEPT RT_OVERRIDE;
     /** Safe copy assignment method.
      * @note Resets callbacks and ASSUMES that @a a_cbData is the content length. */
-    virtual int assignCopy(void const *a_pvData, size_t a_cbData) RT_OVERRIDE;
+    virtual int assignCopy(void const *a_pvData, size_t a_cbData) RT_NOEXCEPT RT_OVERRIDE;
 
     /**
      * Use the specified data buffer directly.
      * @note Resets callbacks and ASSUMES that @a a_cbData is the content length. */
-    virtual int assignReadOnly(void const *a_pvData, size_t a_cbData) RT_OVERRIDE;
+    virtual int assignReadOnly(void const *a_pvData, size_t a_cbData) RT_NOEXCEPT RT_OVERRIDE;
     /**
      * Use the specified data buffer directly.
      * @note This will assert and work like assignReadOnly. */
-    virtual int assignWriteable(void *a_pvBuf, size_t a_cbBuf) RT_OVERRIDE;
+    virtual int assignWriteable(void *a_pvBuf, size_t a_cbBuf) RT_NOEXCEPT RT_OVERRIDE;
 
     /** Make a clone of this object. */
-    inline RTCRestBinaryParameter *clone() const { return (RTCRestBinaryParameter *)baseClone(); }
+    inline RTCRestBinaryParameter *clone() const RT_NOEXCEPT { return (RTCRestBinaryParameter *)baseClone(); }
 
     /* Overridden methods: */
-    virtual RTCRestObjectBase *baseClone() const RT_OVERRIDE;
-    virtual int resetToDefault() RT_OVERRIDE;
-    virtual const char *typeName(void) const RT_OVERRIDE;
+    virtual RTCRestObjectBase *baseClone() const RT_NOEXCEPT RT_OVERRIDE;
+    virtual int resetToDefault() RT_NOEXCEPT RT_OVERRIDE;
+    virtual const char *typeName(void) const RT_NOEXCEPT RT_OVERRIDE;
 
     /** Factory method. */
-    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void);
+    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void) RT_NOEXCEPT;
 
     /**
      * Retrieves the callback data.
      */
-    inline void *getCallbackData() const  { return m_pvCallbackData; }
+    inline void *getCallbackData() const RT_NOEXCEPT  { return m_pvCallbackData; }
 
     /**
@@ -89,15 +89,15 @@
      *                              If NULL, no content type is set.
      */
-    int setContentType(const char *a_pszContentType);
+    int setContentType(const char *a_pszContentType) RT_NOEXCEPT;
 
     /**
      * Gets the content type that was set.
      */
-    inline RTCString const &getContentType() const { return m_strContentType; }
+    inline RTCString const &getContentType() const RT_NOEXCEPT { return m_strContentType; }
 
     /**
      * Gets the content-length value (UINT64_MAX if not available).
      */
-    inline uint64_t getContentLength() const { return m_cbContentLength; }
+    inline uint64_t getContentLength() const RT_NOEXCEPT { return m_cbContentLength; }
 
     /**
@@ -118,5 +118,5 @@
      */
     typedef DECLCALLBACK(int) FNPRODUCER(RTCRestBinaryParameter *a_pThis, void *a_pvDst, size_t a_cbDst,
-                                         uint64_t a_offContent, size_t *a_pcbActual);
+                                         uint64_t a_offContent, size_t *a_pcbActual) /*RT_NOEXCEPT*/;
     /** Pointer to a byte producer callback. */
     typedef FNPRODUCER *PFNPRODUCER;
@@ -134,5 +134,5 @@
      * @note    This will drop any buffer previously registered using setUploadData().
      */
-    void setProducerCallback(PFNPRODUCER a_pfnProducer, void *a_pvCallbackData = NULL, uint64_t a_cbContentLength = UINT64_MAX);
+    void setProducerCallback(PFNPRODUCER a_pfnProducer, void *a_pvCallbackData = NULL, uint64_t a_cbContentLength = UINT64_MAX) RT_NOEXCEPT;
 
     /**
@@ -143,5 +143,5 @@
      * @internal
      */
-    virtual int xmitPrepare(RTHTTP a_hHttp) const;
+    virtual int xmitPrepare(RTHTTP a_hHttp) const RT_NOEXCEPT;
 
     /**
@@ -151,5 +151,5 @@
      * @internal
      */
-    virtual void xmitComplete(RTHTTP a_hHttp) const;
+    virtual void xmitComplete(RTHTTP a_hHttp) const RT_NOEXCEPT;
 
 protected:
@@ -164,6 +164,7 @@
     void       *m_pvCallbackData;
 
-    /** Callback for use with RTHttpSetUploadCallback. */
-    static FNRTHTTPUPLOADCALLBACK   xmitHttpCallback;
+    /** @copydoc FNRTHTTPUPLOADCALLBACK */
+    static DECLCALLBACK(int) xmitHttpCallback(RTHTTP hHttp, void *pvBuf, size_t cbBuf, uint64_t offContent,
+                                              size_t *pcbActual, void *pvUser) RT_NOEXCEPT;
 
 private:
@@ -183,13 +184,13 @@
 public:
     /** Default constructor. */
-    RTCRestBinaryResponse();
+    RTCRestBinaryResponse() RT_NOEXCEPT;
 
     /** Safe copy assignment method. */
-    virtual int assignCopy(RTCRestBinaryResponse const &a_rThat);
+    virtual int assignCopy(RTCRestBinaryResponse const &a_rThat) RT_NOEXCEPT;
     /** Safe copy assignment method. */
-    virtual int assignCopy(RTCRestBinary const &a_rThat) RT_OVERRIDE;
+    virtual int assignCopy(RTCRestBinary const &a_rThat) RT_NOEXCEPT RT_OVERRIDE;
     /** Safe copy assignment method.
      * @note This will assert and fail as it makes no sense for a download.  */
-    virtual int assignCopy(void const *a_pvData, size_t a_cbData) RT_OVERRIDE;
+    virtual int assignCopy(void const *a_pvData, size_t a_cbData) RT_NOEXCEPT RT_OVERRIDE;
 
     /**
@@ -197,26 +198,26 @@
      * @note This will assert and fail as it makes no sense for a download.
      */
-    virtual int assignReadOnly(void const *a_pvData, size_t a_cbData) RT_OVERRIDE;
+    virtual int assignReadOnly(void const *a_pvData, size_t a_cbData) RT_NOEXCEPT RT_OVERRIDE;
     /**
      * Use the specified data buffer directly.
      * @note This will drop any previously registered producer callback and user data.
      */
-    virtual int assignWriteable(void *a_pvBuf, size_t a_cbBuf) RT_OVERRIDE;
+    virtual int assignWriteable(void *a_pvBuf, size_t a_cbBuf) RT_NOEXCEPT RT_OVERRIDE;
 
     /** Make a clone of this object. */
-    inline RTCRestBinaryResponse *clone() const { return (RTCRestBinaryResponse *)baseClone(); }
+    inline RTCRestBinaryResponse *clone() const RT_NOEXCEPT { return (RTCRestBinaryResponse *)baseClone(); }
 
     /* Overridden methods: */
-    virtual RTCRestObjectBase *baseClone() const RT_OVERRIDE;
-    virtual int resetToDefault() RT_OVERRIDE;
-    virtual const char *typeName(void) const RT_OVERRIDE;
+    virtual RTCRestObjectBase *baseClone() const RT_NOEXCEPT RT_OVERRIDE;
+    virtual int resetToDefault() RT_NOEXCEPT RT_OVERRIDE;
+    virtual const char *typeName(void) const RT_NOEXCEPT RT_OVERRIDE;
 
     /** Factory method. */
-    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void);
+    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void) RT_NOEXCEPT;
 
     /**
      * Retrieves the callback data.
      */
-    inline void *getCallbackData() const  { return m_pvCallbackData; }
+    inline void *getCallbackData() const RT_NOEXCEPT { return m_pvCallbackData; }
 
     /**
@@ -230,10 +231,10 @@
      *                          32-bit hosts and 128MiB for 64-bit).
      */
-    void setMaxDownloadSize(size_t a_cbMaxDownload);
+    void setMaxDownloadSize(size_t a_cbMaxDownload) RT_NOEXCEPT;
 
     /**
      * Gets the content-length value (UINT64_MAX if not available).
      */
-    inline uint64_t getContentLength() const { return m_cbContentLength; }
+    inline uint64_t getContentLength() const RT_NOEXCEPT { return m_cbContentLength; }
 
     /**
@@ -255,5 +256,5 @@
      */
     typedef DECLCALLBACK(int) FNCONSUMER(RTCRestBinaryResponse *a_pThis, const void *a_pvSrc, size_t a_cbSrc,
-                                         uint32_t a_uHttpStatus, uint64_t a_offContent, uint64_t a_cbContent);
+                                         uint32_t a_uHttpStatus, uint64_t a_offContent, uint64_t a_cbContent) /*RT_NOEXCEPT*/;
     /** Pointer to a byte consumer callback. */
     typedef FNCONSUMER *PFNCONSUMER;
@@ -267,5 +268,5 @@
      *                              using getCallbackData().
      */
-    void setConsumerCallback(PFNCONSUMER a_pfnConsumer, void *a_pvCallbackData = NULL);
+    void setConsumerCallback(PFNCONSUMER a_pfnConsumer, void *a_pvCallbackData = NULL) RT_NOEXCEPT;
 
     /**
@@ -277,5 +278,5 @@
      * @internal
      */
-    virtual int receivePrepare(RTHTTP a_hHttp, uint32_t a_fCallbackFlags);
+    virtual int receivePrepare(RTHTTP a_hHttp, uint32_t a_fCallbackFlags) RT_NOEXCEPT;
 
     /**
@@ -285,5 +286,5 @@
      * @internal
      */
-    virtual void receiveComplete(RTHTTP a_hHttp);
+    virtual void receiveComplete(RTHTTP a_hHttp) RT_NOEXCEPT;
 
 protected:
@@ -300,6 +301,7 @@
     size_t      m_cbMaxDownload;
 
-    /** Callback for use with RTHttpSetDownloadCallback. */
-    static FNRTHTTPDOWNLOADCALLBACK receiveHttpCallback;
+    /** @copydoc FNRTHTTPDOWNLOADCALLBACK. */
+    static DECLCALLBACK(int) receiveHttpCallback(RTHTTP hHttp, void const *pvBuf, size_t cbBuf, uint32_t uHttpStatus,
+                                                 uint64_t offContent, uint64_t cbContent, void *pvUser) RT_NOEXCEPT;
 
 private:
@@ -331,8 +333,8 @@
 {
 public:
-    RTCRestClientRequestBase();
+    RTCRestClientRequestBase() RT_NOEXCEPT;
     virtual ~RTCRestClientRequestBase();
-    RTCRestClientRequestBase(RTCRestClientRequestBase const &a_rThat);
-    RTCRestClientRequestBase &operator=(RTCRestClientRequestBase const &a_rThat);
+    RTCRestClientRequestBase(RTCRestClientRequestBase const &a_rThat) RT_NOEXCEPT;
+    RTCRestClientRequestBase &operator=(RTCRestClientRequestBase const &a_rThat) RT_NOEXCEPT;
 
     /**
@@ -340,5 +342,5 @@
      * @returns IPRT status code.
      */
-    virtual int resetToDefault() = 0;
+    virtual int resetToDefault() RT_NOEXCEPT = 0;
 
     /**
@@ -351,5 +353,5 @@
      * @param   a_pStrBody  Where to set body parameters.
      */
-    virtual int xmitPrepare(RTCString *a_pStrPath, RTCString *a_pStrQuery, RTHTTP a_hHttp, RTCString *a_pStrBody) const = 0;
+    virtual int xmitPrepare(RTCString *a_pStrPath, RTCString *a_pStrQuery, RTHTTP a_hHttp, RTCString *a_pStrBody) const RT_NOEXCEPT = 0;
 
     /**
@@ -359,10 +361,10 @@
      * @param   a_hHttp     The HTTP handle the request was performed on.
      */
-    virtual void xmitComplete(int a_rcStatus, RTHTTP a_hHttp) const = 0;
+    virtual void xmitComplete(int a_rcStatus, RTHTTP a_hHttp) const RT_NOEXCEPT = 0;
 
     /**
      * Checks if there are were any assignment errors.
      */
-    inline bool hasAssignmentErrors() const { return m_fErrorSet != 0; }
+    inline bool hasAssignmentErrors() const RT_NOEXCEPT { return m_fErrorSet != 0; }
 
 protected:
@@ -400,5 +402,5 @@
      */
     int doPathParameters(RTCString *a_pStrPath, const char *a_pszPathTemplate, size_t a_cchPathTemplate,
-                         PATHPARAMDESC const *a_paPathParams, PATHPARAMSTATE *a_paPathParamStates, size_t a_cPathParams) const;
+                         PATHPARAMDESC const *a_paPathParams, PATHPARAMSTATE *a_paPathParamStates, size_t a_cPathParams) const RT_NOEXCEPT;
 
     /** Query parameter descriptor. */
@@ -421,5 +423,5 @@
      */
     int doQueryParameters(RTCString *a_pStrQuery, QUERYPARAMDESC const *a_paQueryParams,
-                          RTCRestObjectBase const **a_papQueryParamObjs, size_t a_cQueryParams) const;
+                          RTCRestObjectBase const **a_papQueryParamObjs, size_t a_cQueryParams) const RT_NOEXCEPT;
 
     /** Header parameter descriptor. */
@@ -443,5 +445,5 @@
      */
     int doHeaderParameters(RTHTTP a_hHttp, HEADERPARAMDESC const *a_paHeaderParams,
-                           RTCRestObjectBase const **a_papHeaderParamObjs, size_t a_cHeaderParams) const;
+                           RTCRestObjectBase const **a_papHeaderParamObjs, size_t a_cHeaderParams) const RT_NOEXCEPT;
 };
 
@@ -454,5 +456,5 @@
 public:
     /** Default constructor. */
-    RTCRestClientResponseBase();
+    RTCRestClientResponseBase() RT_NOEXCEPT;
     /** Destructor. */
     virtual ~RTCRestClientResponseBase();
@@ -465,5 +467,5 @@
      * Resets the object state.
      */
-    virtual void reset(void);
+    virtual void reset(void) RT_NOEXCEPT;
 
     /**
@@ -477,5 +479,5 @@
      * @param   a_hHttp     The HTTP handle to prepare for receiving.
      */
-    virtual int receivePrepare(RTHTTP a_hHttp);
+    virtual int receivePrepare(RTHTTP a_hHttp) RT_NOEXCEPT;
 
     /**
@@ -489,5 +491,5 @@
      * @note    Called before consumeBody() but after consumeHeader().
      */
-    virtual void receiveComplete(int a_rcStatus, RTHTTP a_hHttp);
+    virtual void receiveComplete(int a_rcStatus, RTHTTP a_hHttp) RT_NOEXCEPT;
 
     /**
@@ -499,5 +501,5 @@
      * @note    Called after consumeHeader().
      */
-    virtual void consumeBody(const char *a_pchData, size_t a_cbData);
+    virtual void consumeBody(const char *a_pchData, size_t a_cbData) RT_NOEXCEPT;
 
     /**
@@ -506,5 +508,5 @@
      * @returns IPRT status code.
      */
-    virtual void receiveFinal();
+    virtual void receiveFinal() RT_NOEXCEPT;
 
     /**
@@ -512,5 +514,5 @@
      * @returns Negative numbers are IPRT errors, positive are HTTP status codes.
      */
-    inline int getStatus() { return m_rcStatus; }
+    inline int getStatus() const RT_NOEXCEPT { return m_rcStatus; }
 
     /**
@@ -518,15 +520,15 @@
      * @returns HTTP status code or VERR_NOT_AVAILABLE.
      */
-    inline int getHttpStatus() { return m_rcHttp; }
+    inline int getHttpStatus() const RT_NOEXCEPT { return m_rcHttp; }
 
     /**
      * Getter for m_pErrInfo.
      */
-    inline PCRTERRINFO getErrInfo(void) const { return m_pErrInfo; }
+    inline PCRTERRINFO getErrInfo(void) const RT_NOEXCEPT { return m_pErrInfo; }
 
     /**
      * Getter for m_strContentType.
      */
-    inline RTCString const &getContentType(void) const { return m_strContentType; }
+    inline RTCString const &getContentType(void) const RT_NOEXCEPT { return m_strContentType; }
 
 
@@ -541,7 +543,7 @@
     RTCString   m_strContentType;
 
-    PRTERRINFO  getErrInfoInternal(void);
-    void        deleteErrInfo(void);
-    void        copyErrInfo(PCRTERRINFO pErrInfo);
+    PRTERRINFO  getErrInfoInternal(void) RT_NOEXCEPT;
+    void        deleteErrInfo(void) RT_NOEXCEPT;
+    void        copyErrInfo(PCRTERRINFO pErrInfo) RT_NOEXCEPT;
 
     /**
@@ -556,5 +558,5 @@
      * @param   ...         Message arguments.
      */
-    int addError(int a_rc, const char *a_pszFormat, ...);
+    int addError(int a_rc, const char *a_pszFormat, ...) RT_NOEXCEPT;
 
     /**
@@ -570,5 +572,5 @@
      */
     int deserializeHeader(RTCRestObjectBase *a_pObj, const char *a_pchValue, size_t a_cchValue,
-                          uint32_t a_fFlags, const char *a_pszErrorTag);
+                          uint32_t a_fFlags, const char *a_pszErrorTag) RT_NOEXCEPT;
 
     /**
@@ -587,5 +589,5 @@
      */
     int deserializeHeaderIntoMap(RTCRestStringMapBase *a_pMap, const char *a_pchField, size_t a_cchField,
-                                 const char *a_pchValue, size_t a_cchValue, uint32_t a_fFlags, const char *a_pszErrorTag);
+                                 const char *a_pchValue, size_t a_cchValue, uint32_t a_fFlags, const char *a_pszErrorTag) RT_NOEXCEPT;
 
     /**
@@ -597,5 +599,5 @@
      * @param   a_pszBodyName   The name of the body parameter.
      */
-    void deserializeBody(const char *a_pchData, size_t a_cbData, const char *a_pszBodyName);
+    void deserializeBody(const char *a_pchData, size_t a_cbData, const char *a_pszBodyName) RT_NOEXCEPT;
 
     /**
@@ -604,5 +606,5 @@
      * @param   a_rCursor       The JSON cursor.
      */
-    virtual void deserializeBodyFromJsonCursor(RTCRestJsonCursor const &a_rCursor);
+    virtual void deserializeBodyFromJsonCursor(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT;
 
     /**
@@ -613,7 +615,7 @@
     public:
         RTCRestClientResponseBase *m_pThat; /**< Pointer to response object. */
-        PrimaryJsonCursorForBody(RTJSONVAL hValue, const char *pszName, RTCRestClientResponseBase *a_pThat);
-        virtual int addError(RTCRestJsonCursor const &a_rCursor, int a_rc, const char *a_pszFormat, ...) RT_OVERRIDE;
-        virtual int unknownField(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
+        PrimaryJsonCursorForBody(RTJSONVAL hValue, const char *pszName, RTCRestClientResponseBase *a_pThat) RT_NOEXCEPT;
+        virtual int addError(RTCRestJsonCursor const &a_rCursor, int a_rc, const char *a_pszFormat, ...) RT_NOEXCEPT RT_OVERRIDE;
+        virtual int unknownField(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT RT_OVERRIDE;
     };
 
@@ -634,9 +636,10 @@
      */
     virtual int consumeHeader(uint32_t a_uMatchWord, const char *a_pchField, size_t a_cchField,
-                              const char *a_pchValue, size_t a_cchValue);
+                              const char *a_pchValue, size_t a_cchValue) RT_NOEXCEPT;
 
 private:
     /** Callback for use with RTHttpSetHeaderCallback. */
-    static FNRTHTTPHEADERCALLBACK receiveHttpHeaderCallback;
+    static DECLCALLBACK(int) receiveHttpHeaderCallback(RTHTTP hHttp, uint32_t uMatchWord, const char *pchField, size_t cchField,
+                                                       const char *pchValue, size_t cchValue, void *pvUser) RT_NOEXCEPT;
 };
 
@@ -648,5 +651,5 @@
 {
 public:
-    RTCRestClientApiBase();
+    RTCRestClientApiBase() RT_NOEXCEPT;
     virtual ~RTCRestClientApiBase();
 
@@ -656,5 +659,5 @@
      * Gets the server URL.
      */
-    const char *getServerUrl(void) const;
+    const char *getServerUrl(void) const RT_NOEXCEPT;
 
     /**
@@ -663,5 +666,5 @@
      * @param   a_pszUrl        The new server URL.  NULL/empty to reset to default.
      */
-    int setServerUrl(const char *a_pszUrl);
+    int setServerUrl(const char *a_pszUrl) RT_NOEXCEPT;
 
     /**
@@ -670,5 +673,5 @@
      * @param   a_pszScheme     The new scheme.  Does not accept NULL or empty string.
      */
-    int setServerScheme(const char *a_pszScheme);
+    int setServerScheme(const char *a_pszScheme) RT_NOEXCEPT;
 
     /**
@@ -677,5 +680,5 @@
      * @param   a_pszAuthority  The new authority.  Does not accept NULL or empty string.
      */
-    int setServerAuthority(const char *a_pszAuthority);
+    int setServerAuthority(const char *a_pszAuthority) RT_NOEXCEPT;
 
     /**
@@ -684,5 +687,5 @@
      * @param   a_pszBasePath   The new base path.  Does not accept NULL or empty string.
      */
-    int setServerBasePath(const char *a_pszBasePath);
+    int setServerBasePath(const char *a_pszBasePath) RT_NOEXCEPT;
 
     /**
@@ -690,5 +693,5 @@
      * @returns Server URL.
      */
-    virtual const char *getDefaultServerUrl() const = 0;
+    virtual const char *getDefaultServerUrl() const RT_NOEXCEPT = 0;
 
     /**
@@ -696,5 +699,5 @@
      * @returns Host string (start of URL).
      */
-    virtual const char *getDefaultServerBasePath() const = 0;
+    virtual const char *getDefaultServerBasePath() const RT_NOEXCEPT = 0;
     /** @} */
 
@@ -720,5 +723,5 @@
      * @returns IPRT status code.
      */
-    virtual int reinitHttpInstance();
+    virtual int reinitHttpInstance() RT_NOEXCEPT;
 
     /**
@@ -735,5 +738,5 @@
      */
     virtual int xmitReady(RTHTTP a_hHttp, RTCString const &a_rStrFullUrl, RTHTTPMETHOD a_enmHttpMethod,
-                          RTCString const &a_rStrXmitBody, uint32_t a_fFlags);
+                          RTCString const &a_rStrXmitBody, uint32_t a_fFlags) RT_NOEXCEPT;
 
     /**
@@ -748,5 +751,5 @@
      */
     virtual int doCall(RTCRestClientRequestBase const &a_rRequest, RTHTTPMETHOD a_enmHttpMethod,
-                       RTCRestClientResponseBase *a_pResponse, const char *a_pszMethod, uint32_t a_fFlags);
+                       RTCRestClientResponseBase *a_pResponse, const char *a_pszMethod, uint32_t a_fFlags) RT_NOEXCEPT;
 
     /**
@@ -766,5 +769,5 @@
      */
     int ociSignRequest(RTHTTP a_hHttp, RTCString const &a_rStrFullUrl, RTHTTPMETHOD a_enmHttpMethod,
-                       RTCString const &a_rStrXmitBody, uint32_t a_fFlags, RTCRKEY a_hKey, RTCString const &a_rStrKeyId);
+                       RTCString const &a_rStrXmitBody, uint32_t a_fFlags, RTCRKEY a_hKey, RTCString const &a_rStrKeyId) RT_NOEXCEPT;
 
     /**
@@ -778,5 +781,5 @@
      * @param   a_cchSrc        The length of the new component.
      */
-    int setServerUrlPart(const char *a_pszServerUrl, size_t a_offDst, size_t a_cchDst, const char *a_pszSrc, size_t a_cchSrc);
+    int setServerUrlPart(const char *a_pszServerUrl, size_t a_offDst, size_t a_cchDst, const char *a_pszSrc, size_t a_cchSrc) RT_NOEXCEPT;
 };
 
Index: /trunk/include/iprt/cpp/restoutput.h
===================================================================
--- /trunk/include/iprt/cpp/restoutput.h	(revision 74424)
+++ /trunk/include/iprt/cpp/restoutput.h	(revision 74425)
@@ -45,5 +45,5 @@
 {
 public:
-    RTCRestOutputBase();
+    RTCRestOutputBase() RT_NOEXCEPT;
     virtual ~RTCRestOutputBase();
 
@@ -55,5 +55,5 @@
      * @param   a_cchToWrite    The length of the string
      */
-    virtual size_t output(const char *a_pchString, size_t a_cchToWrite) = 0;
+    virtual size_t output(const char *a_pchString, size_t a_cchToWrite) RT_NOEXCEPT = 0;
 
     /**
@@ -64,5 +64,5 @@
      * @param   ...         Argument specfied in @a pszFormat.
      */
-    inline size_t printf(const char *pszFormat, ...) RT_IPRT_FORMAT_ATTR(2, 3)
+    inline size_t printf(const char *pszFormat, ...) RT_NOEXCEPT RT_IPRT_FORMAT_ATTR(2, 3)
     {
         va_list va;
@@ -80,5 +80,5 @@
      * @param   va          Argument specfied in @a pszFormat.
      */
-    size_t vprintf(const char *pszFormat, va_list va) RT_IPRT_FORMAT_ATTR(2, 0);
+    size_t vprintf(const char *pszFormat, va_list va) RT_NOEXCEPT RT_IPRT_FORMAT_ATTR(2, 0);
 
     /**
@@ -86,5 +86,5 @@
      * @returns Previous output state.  Pass to endArray() when done.
      */
-    virtual uint32_t beginArray();
+    virtual uint32_t beginArray() RT_NOEXCEPT;
 
     /**
@@ -92,5 +92,5 @@
      * @param   a_uOldState     Previous output state (returned by beginArray()).
      */
-    virtual void endArray(uint32_t a_uOldState);
+    virtual void endArray(uint32_t a_uOldState) RT_NOEXCEPT;
 
     /**
@@ -98,5 +98,5 @@
      * @returns Previous output state.  Pass to endObject() when done.
      */
-    virtual uint32_t beginObject();
+    virtual uint32_t beginObject() RT_NOEXCEPT;
 
     /**
@@ -104,5 +104,5 @@
      * @param   a_uOldState     Previous output state (returned by beginObject()).
      */
-    virtual void endObject(uint32_t a_uOldState);
+    virtual void endObject(uint32_t a_uOldState) RT_NOEXCEPT;
 
     /**
@@ -110,13 +110,13 @@
      * This is called before a value, not after.
      */
-    virtual void valueSeparator();
+    virtual void valueSeparator() RT_NOEXCEPT;
 
     /**
      * Outputs a value separator, name and name separator.
      */
-    virtual void valueSeparatorAndName(const char *a_pszName, size_t a_cchName);
+    virtual void valueSeparatorAndName(const char *a_pszName, size_t a_cchName) RT_NOEXCEPT;
 
     /** Outputs a null-value. */
-    void nullValue();
+    void nullValue() RT_NOEXCEPT;
 
 protected:
@@ -125,5 +125,5 @@
 
     /** @callback_method_impl{FNRTSTROUTPUT} */
-    static DECLCALLBACK(size_t) printfOutputCallback(void *pvArg, const char *pachChars, size_t cbChars);
+    static DECLCALLBACK(size_t) printfOutputCallback(void *pvArg, const char *pachChars, size_t cbChars) RT_NOEXCEPT;
 };
 
@@ -135,5 +135,5 @@
 {
 public:
-    RTCRestOutputPrettyBase();
+    RTCRestOutputPrettyBase() RT_NOEXCEPT;
     virtual ~RTCRestOutputPrettyBase();
 
@@ -142,5 +142,5 @@
      * @returns Previous output state.  Pass to endArray() when done.
      */
-    virtual uint32_t beginArray() RT_OVERRIDE;
+    virtual uint32_t beginArray() RT_NOEXCEPT RT_OVERRIDE;
 
     /**
@@ -148,5 +148,5 @@
      * @param   a_uOldState     Previous output state (returned by beginArray()).
      */
-    virtual void endArray(uint32_t a_uOldState) RT_OVERRIDE;
+    virtual void endArray(uint32_t a_uOldState) RT_NOEXCEPT RT_OVERRIDE;
 
     /**
@@ -154,5 +154,5 @@
      * @returns Previous output state.  Pass to endObject() when done.
      */
-    virtual uint32_t beginObject() RT_OVERRIDE;
+    virtual uint32_t beginObject() RT_NOEXCEPT RT_OVERRIDE;
 
     /**
@@ -160,5 +160,5 @@
      * @param   a_uOldState     Previous output state (returned by beginObject()).
      */
-    virtual void endObject(uint32_t a_uOldState) RT_OVERRIDE;
+    virtual void endObject(uint32_t a_uOldState) RT_NOEXCEPT RT_OVERRIDE;
 
     /**
@@ -166,14 +166,14 @@
      * This is called before a value, not after.
      */
-    virtual void valueSeparator() RT_OVERRIDE;
+    virtual void valueSeparator() RT_NOEXCEPT RT_OVERRIDE;
 
     /**
      * Outputs a value separator, name and name separator.
      */
-    virtual void valueSeparatorAndName(const char *a_pszName, size_t a_cchName) RT_OVERRIDE;
+    virtual void valueSeparatorAndName(const char *a_pszName, size_t a_cchName) RT_NOEXCEPT RT_OVERRIDE;
 
 protected:
     /** Helper for outputting the correct amount of indentation. */
-    void outputIndentation();
+    void outputIndentation() RT_NOEXCEPT;
 };
 
@@ -192,8 +192,8 @@
      *                      nuke the string content before starting the output.
      */
-    RTCRestOutputToString(RTCString *a_pDst, bool a_fAppend = false);
+    RTCRestOutputToString(RTCString *a_pDst, bool a_fAppend = false) RT_NOEXCEPT;
     virtual ~RTCRestOutputToString();
 
-    virtual size_t output(const char *a_pchString, size_t a_cchToWrite) RT_OVERRIDE;
+    virtual size_t output(const char *a_pchString, size_t a_cchToWrite) RT_NOEXCEPT RT_OVERRIDE;
 
     /**
@@ -206,5 +206,5 @@
      *          more output afterwards.
      */
-    virtual RTCString *finalize();
+    virtual RTCString *finalize() RT_NOEXCEPT;
 
 protected:
@@ -233,8 +233,8 @@
      *                      nuke the string content before starting the output.
      */
-    RTCRestOutputPrettyToString(RTCString *a_pDst, bool a_fAppend = false);
+    RTCRestOutputPrettyToString(RTCString *a_pDst, bool a_fAppend = false) RT_NOEXCEPT;
     virtual ~RTCRestOutputPrettyToString();
 
-    virtual size_t output(const char *a_pchString, size_t a_cchToWrite) RT_OVERRIDE;
+    virtual size_t output(const char *a_pchString, size_t a_cchToWrite) RT_NOEXCEPT RT_OVERRIDE;
 
     /**
@@ -247,5 +247,5 @@
      *          more output afterwards.
      */
-    virtual RTCString *finalize();
+    virtual RTCString *finalize() RT_NOEXCEPT;
 
 protected:
Index: /trunk/include/iprt/cpp/reststringmap.h
===================================================================
--- /trunk/include/iprt/cpp/reststringmap.h	(revision 74424)
+++ /trunk/include/iprt/cpp/reststringmap.h	(revision 74425)
@@ -44,5 +44,5 @@
 public:
     /** Default destructor. */
-    RTCRestStringMapBase();
+    RTCRestStringMapBase() RT_NOEXCEPT;
     /** Copy constructor. */
     RTCRestStringMapBase(RTCRestStringMapBase const &a_rThat);
@@ -53,29 +53,29 @@
 
     /* Overridden methods: */
-    virtual RTCRestObjectBase *baseClone() const RT_OVERRIDE;
-    virtual int resetToDefault() RT_OVERRIDE;
-    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_OVERRIDE;
-    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
+    virtual RTCRestObjectBase *baseClone() const RT_NOEXCEPT RT_OVERRIDE;
+    virtual int resetToDefault() RT_NOEXCEPT RT_OVERRIDE;
+    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT RT_OVERRIDE;
+    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT RT_OVERRIDE;
     // later?
-    //virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = kCollectionFormat_Unspecified) const RT_OVERRIDE;
+    //virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = kCollectionFormat_Unspecified) const RT_NOEXCEPT RT_OVERRIDE;
     //virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
-    //                       uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_OVERRIDE;
-    virtual kTypeClass typeClass(void) const RT_OVERRIDE;
-    virtual const char *typeName(void) const RT_OVERRIDE;
+    //                       uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_NOEXCEPT RT_OVERRIDE;
+    virtual kTypeClass typeClass(void) const RT_NOEXCEPT RT_OVERRIDE;
+    virtual const char *typeName(void) const RT_NOEXCEPT RT_OVERRIDE;
 
     /**
      * Clear the content of the map.
      */
-    void clear();
+    void clear() RT_NOEXCEPT;
 
     /**
      * Checks if the map is empty.
      */
-    inline bool isEmpty() const { return m_cEntries == 0; }
+    inline bool isEmpty() const RT_NOEXCEPT { return m_cEntries == 0; }
 
     /**
      * Gets the number of entries in the map.
      */
-    size_t size() const;
+    size_t size() const RT_NOEXCEPT;
 
     /**
@@ -84,5 +84,5 @@
      * @param   a_pszKey   The key to check fo.
      */
-    bool containsKey(const char *a_pszKey) const;
+    bool containsKey(const char *a_pszKey) const RT_NOEXCEPT;
 
     /**
@@ -91,5 +91,5 @@
      * @param   a_rStrKey   The key to check fo.
      */
-    bool containsKey(RTCString const &a_rStrKey) const;
+    bool containsKey(RTCString const &a_rStrKey) const RT_NOEXCEPT;
 
     /**
@@ -98,5 +98,5 @@
      * @param   a_pszKey    The key to remove.
      */
-    bool remove(const char *a_pszKey);
+    bool remove(const char *a_pszKey) RT_NOEXCEPT;
 
     /**
@@ -105,5 +105,5 @@
      * @param   a_rStrKey   The key to remove.
      */
-    bool remove(RTCString const &a_rStrKey);
+    bool remove(RTCString const &a_rStrKey) RT_NOEXCEPT;
 
     /**
@@ -117,5 +117,5 @@
      * @param   a_fReplace  Whether to replace or fail on key collision.
      */
-    int putNewValue(RTCRestObjectBase **a_ppValue, const char *a_pszKey, size_t a_cchKey = RTSTR_MAX, bool a_fReplace = false);
+    int putNewValue(RTCRestObjectBase **a_ppValue, const char *a_pszKey, size_t a_cchKey = RTSTR_MAX, bool a_fReplace = false) RT_NOEXCEPT;
 
     /**
@@ -128,5 +128,5 @@
      * @param   a_fReplace  Whether to replace or fail on key collision.
      */
-    int putNewValue(RTCRestObjectBase **a_ppValue, RTCString const &a_rStrKey, bool a_fReplace = false);
+    int putNewValue(RTCRestObjectBase **a_ppValue, RTCString const &a_rStrKey, bool a_fReplace = false) RT_NOEXCEPT;
 
 protected:
@@ -159,17 +159,17 @@
     private:
         MapEntry            *m_pCur;
-        ConstIterator();
+        ConstIterator() RT_NOEXCEPT;
     protected:
-        ConstIterator(MapEntry *a_pEntry) : m_pCur(a_pEntry) { }
+        ConstIterator(MapEntry *a_pEntry) RT_NOEXCEPT : m_pCur(a_pEntry) { }
     public:
-        ConstIterator(ConstIterator const &a_rThat) : m_pCur(a_rThat.m_pCur) { }
+        ConstIterator(ConstIterator const &a_rThat) RT_NOEXCEPT : m_pCur(a_rThat.m_pCur) { }
 
         /** Gets the key string. */
-        inline RTCString const         &getKey()   { return m_pCur->strKey; }
+        inline RTCString const         &getKey() RT_NOEXCEPT   { return m_pCur->strKey; }
         /** Gets poitner to the value object. */
-        inline RTCRestObjectBase const *getValue() { return m_pCur->pValue; }
+        inline RTCRestObjectBase const *getValue() RT_NOEXCEPT { return m_pCur->pValue; }
 
         /** Advance to the next map entry. */
-        inline ConstIterator &operator++()
+        inline ConstIterator &operator++() RT_NOEXCEPT
         {
             m_pCur = RTListNodeGetNextCpp(&m_pCur->ListEntry, MapEntry, ListEntry);
@@ -178,5 +178,5 @@
 
         /** Advance to the previous map entry. */
-        inline ConstIterator &operator--()
+        inline ConstIterator &operator--() RT_NOEXCEPT
         {
             m_pCur = RTListNodeGetPrevCpp(&m_pCur->ListEntry, MapEntry, ListEntry);
@@ -185,7 +185,7 @@
 
         /** Compare equal. */
-        inline bool operator==(ConstIterator const &a_rThat) { return m_pCur == a_rThat.m_pCur; }
+        inline bool operator==(ConstIterator const &a_rThat) RT_NOEXCEPT { return m_pCur == a_rThat.m_pCur; }
         /** Compare not equal. */
-        inline bool operator!=(ConstIterator const &a_rThat) { return m_pCur != a_rThat.m_pCur; }
+        inline bool operator!=(ConstIterator const &a_rThat) RT_NOEXCEPT { return m_pCur != a_rThat.m_pCur; }
 
         /* Map class must be friend so it can use the MapEntry constructor. */
@@ -194,5 +194,5 @@
 
     /** Returns iterator for the first map entry (unless it's empty and it's also the end). */
-    inline ConstIterator begin() const
+    inline ConstIterator begin() const RT_NOEXCEPT
     {
         if (!RTListIsEmpty(&m_ListHead))
@@ -201,5 +201,5 @@
     }
     /** Returns iterator for the last map entry (unless it's empty and it's also the end). */
-    inline ConstIterator last() const
+    inline ConstIterator last() const RT_NOEXCEPT
     {
         if (!RTListIsEmpty(&m_ListHead))
@@ -208,5 +208,5 @@
     }
     /** Returns the end iterator.  This does not ever refer to an actual map entry. */
-    inline ConstIterator end() const
+    inline ConstIterator end() const RT_NOEXCEPT
     {
         return ConstIterator(RT_FROM_CPP_MEMBER(&m_ListHead, MapEntry, ListEntry));
@@ -221,5 +221,5 @@
      * @returns Pointer to new map object on success, NULL if out of memory.
      */
-    virtual RTCRestStringMapBase *createClone(void) const = 0;
+    virtual RTCRestStringMapBase *createClone(void) const RT_NOEXCEPT = 0;
 
     /**
@@ -228,13 +228,13 @@
      * @returns Pointer to new value object on success, NULL if out of memory.
      */
-    virtual RTCRestObjectBase *createValue(void) = 0;
+    virtual RTCRestObjectBase *createValue(void) RT_NOEXCEPT = 0;
 
     /**
      * For accessing the static deserializeInstanceFromJson() method of the value.
      */
-    virtual int deserializeValueInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) = 0;
-
-    /**
-     * Worker for the copy constructor and the assignment operator.
+    virtual int deserializeValueInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT = 0;
+
+    /**
+     * Worker for the copy assignment method and copyMapWorkerMayThrow.
      *
      * This will use createEntryCopy to do the copying.
@@ -243,7 +243,12 @@
      * @param   a_rThat     The map to copy.  Caller makes 100% sure the it has
      *                      the same type as the destination.
-     * @param   a_fThrow    Whether to throw error.
-     */
-    int copyMapWorker(RTCRestStringMapBase const &a_rThat, bool a_fThrow);
+     */
+    int copyMapWorkerNoThrow(RTCRestStringMapBase const &a_rThat) RT_NOEXCEPT;
+
+    /**
+     * Wrapper around copyMapWorkerNoThrow() that throws allocation errors, making
+     * it suitable for copy constructors and assignment operators.
+     */
+    void copyMapWorkerMayThrow(RTCRestStringMapBase const &a_rThat);
 
     /**
@@ -257,5 +262,5 @@
      * @param   a_cchKey        The key length, the whole string by default.
      */
-    int putWorker(const char *a_pszKey, RTCRestObjectBase *a_pValue, bool a_fReplace, size_t a_cchKey = RTSTR_MAX);
+    int putWorker(const char *a_pszKey, RTCRestObjectBase *a_pValue, bool a_fReplace, size_t a_cchKey = RTSTR_MAX) RT_NOEXCEPT;
 
     /**
@@ -269,5 +274,5 @@
      * @param   a_cchKey        The key length, the whole string by default.
      */
-    int putCopyWorker(const char *a_pszKey, RTCRestObjectBase const &a_rValue, bool a_fReplace, size_t a_cchKey = RTSTR_MAX);
+    int putCopyWorker(const char *a_pszKey, RTCRestObjectBase const &a_rValue, bool a_fReplace, size_t a_cchKey = RTSTR_MAX) RT_NOEXCEPT;
 
     /**
@@ -277,5 +282,5 @@
      * @param   a_pszKey        The key which value to look up.
      */
-    RTCRestObjectBase *getWorker(const char *a_pszKey);
+    RTCRestObjectBase *getWorker(const char *a_pszKey) RT_NOEXCEPT;
 
     /**
@@ -285,8 +290,8 @@
      * @param   a_pszKey        The key which value to look up.
      */
-    RTCRestObjectBase const *getWorker(const char *a_pszKey) const;
+    RTCRestObjectBase const *getWorker(const char *a_pszKey) const RT_NOEXCEPT;
 
 private:
-    static DECLCALLBACK(int) stringSpaceDestructorCallback(PRTSTRSPACECORE pStr, void *pvUser);
+    static DECLCALLBACK(int) stringSpaceDestructorCallback(PRTSTRSPACECORE pStr, void *pvUser) RT_NOEXCEPT;
 };
 
@@ -299,5 +304,5 @@
 public:
     /** Default constructor, creates emtpy map. */
-    RTCRestStringMap()
+    RTCRestStringMap() RT_NOEXCEPT
         : RTCRestStringMapBase()
     {}
@@ -307,5 +312,5 @@
         : RTCRestStringMapBase()
     {
-        copyMapWorker(a_rThat, true /*a_fThrow*/);
+        copyMapWorkerMayThrow(a_rThat);
     }
 
@@ -319,16 +324,16 @@
     RTCRestStringMap &operator=(RTCRestStringMap const &a_rThat)
     {
-        copyMapWorker(a_rThat, true /*a_fThrow*/);
+        copyMapWorkerMayThrow(a_rThat);
         return *this;
     }
 
     /** Safe copy assignment method. */
-    int assignCopy(RTCRestStringMap const &a_rThat)
-    {
-        return copyMapWorker(a_rThat, false /*a_fThrow*/);
+    int assignCopy(RTCRestStringMap const &a_rThat) RT_NOEXCEPT
+    {
+        return copyMapWorkerNoThrow(a_rThat);
     }
 
     /** Make a clone of this object. */
-    inline RTCRestStringMap *clone() const
+    inline RTCRestStringMap *clone() const RT_NOEXCEPT
     {
         return (RTCRestStringMap *)baseClone();
@@ -336,5 +341,5 @@
 
     /** Factory method. */
-    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void)
+    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void) RT_NOEXCEPT
     {
         return new (std::nothrow) RTCRestStringMap<ValueType>();
@@ -342,5 +347,5 @@
 
     /** Factory method for values. */
-    static DECLCALLBACK(RTCRestObjectBase *) createValueInstance(void)
+    static DECLCALLBACK(RTCRestObjectBase *) createValueInstance(void) RT_NOEXCEPT
     {
         return new (std::nothrow) ValueType();
@@ -348,5 +353,5 @@
 
     /** @copydoc RTCRestObjectBase::FNDESERIALIZEINSTANCEFROMJSON */
-    static DECLCALLBACK(int) deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance)
+    static DECLCALLBACK(int) deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT
     {
         *a_ppInstance = new (std::nothrow) RTCRestStringMap<ValueType>();
@@ -365,5 +370,5 @@
      * @param   a_fReplace      Whether to replace existing key-value pair with matching key.
      */
-    inline int put(const char *a_pszKey, ValueType *a_pValue, bool a_fReplace = false)
+    inline int put(const char *a_pszKey, ValueType *a_pValue, bool a_fReplace = false) RT_NOEXCEPT
     {
         return putWorker(a_pszKey, a_pValue, a_fReplace);
@@ -379,5 +384,5 @@
      * @param   a_fReplace      Whether to replace existing key-value pair with matching key.
      */
-    inline int put(RTCString const &a_rStrKey, ValueType *a_pValue, bool a_fReplace = false)
+    inline int put(RTCString const &a_rStrKey, ValueType *a_pValue, bool a_fReplace = false) RT_NOEXCEPT
     {
         return putWorker(a_rStrKey.c_str(), a_pValue, a_fReplace, a_rStrKey.length());
@@ -393,5 +398,5 @@
      * @param   a_fReplace      Whether to replace existing key-value pair with matching key.
      */
-    inline int putCopy(const char *a_pszKey, const ValueType &a_rValue, bool a_fReplace = false)
+    inline int putCopy(const char *a_pszKey, const ValueType &a_rValue, bool a_fReplace = false) RT_NOEXCEPT
     {
         return putCopyWorker(a_pszKey, a_rValue, a_fReplace);
@@ -407,5 +412,5 @@
      * @param   a_fReplace      Whether to replace existing key-value pair with matching key.
      */
-    inline int putCopy(RTCString const &a_rStrKey, const ValueType &a_rValue, bool a_fReplace = false)
+    inline int putCopy(RTCString const &a_rStrKey, const ValueType &a_rValue, bool a_fReplace = false) RT_NOEXCEPT
     {
         return putCopyWorker(a_rStrKey.c_str(), a_rValue, a_fReplace, a_rStrKey.length());
@@ -418,5 +423,5 @@
      * @param   a_pszKey        The key which value to look up.
      */
-    inline ValueType *get(const char *a_pszKey)
+    inline ValueType *get(const char *a_pszKey) RT_NOEXCEPT
     {
         return (ValueType *)getWorker(a_pszKey);
@@ -429,5 +434,5 @@
      * @param   a_rStrKey       The key which value to look up.
      */
-    inline ValueType *get(RTCString const &a_rStrKey)
+    inline ValueType *get(RTCString const &a_rStrKey) RT_NOEXCEPT
     {
         return (ValueType *)getWorker(a_rStrKey.c_str());
@@ -440,5 +445,5 @@
      * @param   a_pszKey        The key which value to look up.
      */
-    inline ValueType const *get(const char *a_pszKey) const
+    inline ValueType const *get(const char *a_pszKey) const RT_NOEXCEPT
     {
         return (ValueType const *)getWorker(a_pszKey);
@@ -451,5 +456,5 @@
      * @param   a_rStrKey       The key which value to look up.
      */
-    inline ValueType const *get(RTCString const &a_rStrKey) const
+    inline ValueType const *get(RTCString const &a_rStrKey) const RT_NOEXCEPT
     {
         return (ValueType const *)getWorker(a_rStrKey.c_str());
@@ -459,15 +464,15 @@
 
 protected:
-    virtual RTCRestStringMapBase *createClone(void) const RT_OVERRIDE
+    virtual RTCRestStringMapBase *createClone(void) const RT_NOEXCEPT RT_OVERRIDE
     {
         return new (std::nothrow) RTCRestStringMap();
     }
 
-    virtual RTCRestObjectBase *createValue(void) RT_OVERRIDE
+    virtual RTCRestObjectBase *createValue(void) RT_NOEXCEPT RT_OVERRIDE
     {
         return new (std::nothrow) ValueType();
     }
 
-    virtual int deserializeValueInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_OVERRIDE
+    virtual int deserializeValueInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT RT_OVERRIDE
     {
         return ValueType::deserializeInstanceFromJson(a_rCursor, a_ppInstance);
Index: /trunk/src/VBox/Runtime/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Runtime/Makefile.kmk	(revision 74424)
+++ /trunk/src/VBox/Runtime/Makefile.kmk	(revision 74425)
@@ -2348,5 +2348,5 @@
 
 
-if1of ($(KBUILD_TARGET),win darwin) # remove later
+if1of ($(KBUILD_TARGET),win linux darwin) # remove later
 if1of (VBoxRT,$(DLLS))
  #
Index: /trunk/src/VBox/Runtime/VBox/VBoxRTImp-gcc.def
===================================================================
--- /trunk/src/VBox/Runtime/VBox/VBoxRTImp-gcc.def	(revision 74424)
+++ /trunk/src/VBox/Runtime/VBox/VBoxRTImp-gcc.def	(revision 74425)
@@ -28,88 +28,8 @@
     ; RTCString & RTCRest classes.
     ;
-    ; Use the following command-line to generate the stuff below:
-    ; nm ../../../out/darwin.amd64/debug/obj/VBoxRT/VBoxRT.dylib -U | kmk_sed -re '/(RTCString|RTCRest)/!d' -e 's/^[0-9a-fA-F]+ //' -e '/^[A-Z]/!d' | sort | kmk_sed -r -e 's/[SDBC] (.+)$/    \1 DATA/' -e 's/^[A-Z] /    /' -e 's/ __/ _/' >> VBox/VBoxRTImp-gcc.def
+    ; Use one of the following command-line to generate the stuff below:
+    ;   nm ../../../out/darwin.amd64/debug/obj/VBoxRT/VBoxRT.dylib -U | LC_COLLATE=C kmk_sed -re '/(RTCString|RTCRest)/!d' -e 's/^[0-9a-fA-F]+ //' -e '/^[A-Z]/!d'      -e 's/[SDBC] (.+)$/    \1 DATA/' -e 's/^[A-Z] /    /' -e 's/ __/ _/' | LC_COLLATE=C sort >> VBox/VBoxRTImp-gcc.def
+    ;   nm ../../../out/linux.amd64/debug/obj/VBoxRT/VBoxRT.so        | LC_COLLATE=C kmk_sed -re '/(RTCString|RTCRest)/!d' -e 's/^[0-9a-fA-F]+ //' -e '/^[A-TV-Z]/!d' -e 's/[SDBCRV] (.+)$/    \1 DATA/' -e 's/^[A-Z] /    /'                | LC_COLLATE=C sort  >> VBox/VBoxRTImp-gcc.def
     ;
-    _ZTI9RTCString DATA
-    _ZN9RTCString4nposE DATA
-    _ZTI11RTCRestBool DATA
-    _ZTI11RTCRestDate DATA
-    _ZTI12RTCRestInt16 DATA
-    _ZTI12RTCRestInt32 DATA
-    _ZTI12RTCRestInt64 DATA
-    _ZTI13RTCRestBinary DATA
-    _ZTI13RTCRestDouble DATA
-    _ZTI13RTCRestString DATA
-    _ZTI16RTCRestAnyObject DATA
-    _ZTI16RTCRestArrayBase DATA
-    _ZTI17RTCRestDataObject DATA
-    _ZTI17RTCRestObjectBase DATA
-    _ZTI17RTCRestOutputBase DATA
-    _ZTI20RTCRestClientApiBase DATA
-    _ZTI20RTCRestStringMapBase DATA
-    _ZTI21RTCRestBinaryResponse DATA
-    _ZTI21RTCRestOutputToString DATA
-    _ZTI21RTCRestPolyDataObject DATA
-    _ZTI21RTCRestStringEnumBase DATA
-    _ZTI22RTCRestBinaryParameter DATA
-    _ZTI23RTCRestOutputPrettyBase DATA
-    _ZTI24RTCRestClientRequestBase DATA
-    _ZTI24RTCRestJsonPrimaryCursor DATA
-    _ZTI25RTCRestClientResponseBase DATA
-    _ZTI27RTCRestOutputPrettyToString DATA
-    _ZTIN25RTCRestClientResponseBase24PrimaryJsonCursorForBodyE DATA
-    _ZTS11RTCRestBool DATA
-    _ZTS11RTCRestDate DATA
-    _ZTS12RTCRestInt16 DATA
-    _ZTS12RTCRestInt32 DATA
-    _ZTS12RTCRestInt64 DATA
-    _ZTS13RTCRestBinary DATA
-    _ZTS13RTCRestDouble DATA
-    _ZTS13RTCRestString DATA
-    _ZTS16RTCRestAnyObject DATA
-    _ZTS16RTCRestArrayBase DATA
-    _ZTS17RTCRestDataObject DATA
-    _ZTS17RTCRestObjectBase DATA
-    _ZTS17RTCRestOutputBase DATA
-    _ZTS20RTCRestClientApiBase DATA
-    _ZTS20RTCRestStringMapBase DATA
-    _ZTS21RTCRestBinaryResponse DATA
-    _ZTS21RTCRestOutputToString DATA
-    _ZTS21RTCRestPolyDataObject DATA
-    _ZTS21RTCRestStringEnumBase DATA
-    _ZTS22RTCRestBinaryParameter DATA
-    _ZTS23RTCRestOutputPrettyBase DATA
-    _ZTS24RTCRestClientRequestBase DATA
-    _ZTS24RTCRestJsonPrimaryCursor DATA
-    _ZTS25RTCRestClientResponseBase DATA
-    _ZTS27RTCRestOutputPrettyToString DATA
-    _ZTS9RTCString DATA
-    _ZTSN25RTCRestClientResponseBase24PrimaryJsonCursorForBodyE DATA
-    _ZTV11RTCRestBool DATA
-    _ZTV11RTCRestDate DATA
-    _ZTV12RTCRestInt16 DATA
-    _ZTV12RTCRestInt32 DATA
-    _ZTV12RTCRestInt64 DATA
-    _ZTV13RTCRestBinary DATA
-    _ZTV13RTCRestDouble DATA
-    _ZTV13RTCRestString DATA
-    _ZTV16RTCRestAnyObject DATA
-    _ZTV16RTCRestArrayBase DATA
-    _ZTV17RTCRestDataObject DATA
-    _ZTV17RTCRestObjectBase DATA
-    _ZTV17RTCRestOutputBase DATA
-    _ZTV20RTCRestClientApiBase DATA
-    _ZTV20RTCRestStringMapBase DATA
-    _ZTV21RTCRestBinaryResponse DATA
-    _ZTV21RTCRestOutputToString DATA
-    _ZTV21RTCRestPolyDataObject DATA
-    _ZTV21RTCRestStringEnumBase DATA
-    _ZTV22RTCRestBinaryParameter DATA
-    _ZTV23RTCRestOutputPrettyBase DATA
-    _ZTV24RTCRestClientRequestBase DATA
-    _ZTV24RTCRestJsonPrimaryCursor DATA
-    _ZTV25RTCRestClientResponseBase DATA
-    _ZTV27RTCRestOutputPrettyToString DATA
-    _ZTVN25RTCRestClientResponseBase24PrimaryJsonCursorForBodyE DATA
     _ZN11RTCRestBool10assignCopyERKS_
     _ZN11RTCRestBool10fromStringERK9RTCStringPKcP9RTERRINFOj
@@ -523,4 +443,5 @@
     _ZN9RTCString27printfOutputCallbackNoThrowEPvPKcm
     _ZN9RTCString4joinERK7RTCListIS_PS_ERKS_
+    _ZN9RTCString4nposE DATA
     _ZN9RTCString5eraseEmm
     _ZN9RTCString5stripEv
@@ -640,4 +561,84 @@
     _ZNK9RTCString8endsWithERKS_NS_15CaseSensitivityE
     _ZNK9RTCString8substrCPEmm
+    _ZTI11RTCRestBool DATA
+    _ZTI11RTCRestDate DATA
+    _ZTI12RTCRestInt16 DATA
+    _ZTI12RTCRestInt32 DATA
+    _ZTI12RTCRestInt64 DATA
+    _ZTI13RTCRestBinary DATA
+    _ZTI13RTCRestDouble DATA
+    _ZTI13RTCRestString DATA
+    _ZTI16RTCRestAnyObject DATA
+    _ZTI16RTCRestArrayBase DATA
+    _ZTI17RTCRestDataObject DATA
+    _ZTI17RTCRestObjectBase DATA
+    _ZTI17RTCRestOutputBase DATA
+    _ZTI20RTCRestClientApiBase DATA
+    _ZTI20RTCRestStringMapBase DATA
+    _ZTI21RTCRestBinaryResponse DATA
+    _ZTI21RTCRestOutputToString DATA
+    _ZTI21RTCRestPolyDataObject DATA
+    _ZTI21RTCRestStringEnumBase DATA
+    _ZTI22RTCRestBinaryParameter DATA
+    _ZTI23RTCRestOutputPrettyBase DATA
+    _ZTI24RTCRestClientRequestBase DATA
+    _ZTI24RTCRestJsonPrimaryCursor DATA
+    _ZTI25RTCRestClientResponseBase DATA
+    _ZTI27RTCRestOutputPrettyToString DATA
+    _ZTI9RTCString DATA
+    _ZTIN25RTCRestClientResponseBase24PrimaryJsonCursorForBodyE DATA
+    _ZTS11RTCRestBool DATA
+    _ZTS11RTCRestDate DATA
+    _ZTS12RTCRestInt16 DATA
+    _ZTS12RTCRestInt32 DATA
+    _ZTS12RTCRestInt64 DATA
+    _ZTS13RTCRestBinary DATA
+    _ZTS13RTCRestDouble DATA
+    _ZTS13RTCRestString DATA
+    _ZTS16RTCRestAnyObject DATA
+    _ZTS16RTCRestArrayBase DATA
+    _ZTS17RTCRestDataObject DATA
+    _ZTS17RTCRestObjectBase DATA
+    _ZTS17RTCRestOutputBase DATA
+    _ZTS20RTCRestClientApiBase DATA
+    _ZTS20RTCRestStringMapBase DATA
+    _ZTS21RTCRestBinaryResponse DATA
+    _ZTS21RTCRestOutputToString DATA
+    _ZTS21RTCRestPolyDataObject DATA
+    _ZTS21RTCRestStringEnumBase DATA
+    _ZTS22RTCRestBinaryParameter DATA
+    _ZTS23RTCRestOutputPrettyBase DATA
+    _ZTS24RTCRestClientRequestBase DATA
+    _ZTS24RTCRestJsonPrimaryCursor DATA
+    _ZTS25RTCRestClientResponseBase DATA
+    _ZTS27RTCRestOutputPrettyToString DATA
+    _ZTS9RTCString DATA
+    _ZTSN25RTCRestClientResponseBase24PrimaryJsonCursorForBodyE DATA
+    _ZTV11RTCRestBool DATA
+    _ZTV11RTCRestDate DATA
+    _ZTV12RTCRestInt16 DATA
+    _ZTV12RTCRestInt32 DATA
+    _ZTV12RTCRestInt64 DATA
+    _ZTV13RTCRestBinary DATA
+    _ZTV13RTCRestDouble DATA
+    _ZTV13RTCRestString DATA
+    _ZTV16RTCRestAnyObject DATA
+    _ZTV16RTCRestArrayBase DATA
+    _ZTV17RTCRestDataObject DATA
+    _ZTV17RTCRestObjectBase DATA
+    _ZTV17RTCRestOutputBase DATA
+    _ZTV20RTCRestClientApiBase DATA
+    _ZTV20RTCRestStringMapBase DATA
+    _ZTV21RTCRestBinaryResponse DATA
+    _ZTV21RTCRestOutputToString DATA
+    _ZTV21RTCRestPolyDataObject DATA
+    _ZTV21RTCRestStringEnumBase DATA
+    _ZTV22RTCRestBinaryParameter DATA
+    _ZTV23RTCRestOutputPrettyBase DATA
+    _ZTV24RTCRestClientRequestBase DATA
+    _ZTV24RTCRestJsonPrimaryCursor DATA
+    _ZTV25RTCRestClientResponseBase DATA
+    _ZTV27RTCRestOutputPrettyToString DATA
+    _ZTVN25RTCRestClientResponseBase24PrimaryJsonCursorForBodyE DATA
     _ZThn16_N13RTCRestStringD0Ev
     _ZThn16_N13RTCRestStringD1Ev
@@ -645,2 +646,3 @@
     _ZplRK9RTCStringPKc
     _ZplRK9RTCStringS1_
+
Index: /trunk/src/VBox/Runtime/common/rest/RTCRestAnyObject.cpp
===================================================================
--- /trunk/src/VBox/Runtime/common/rest/RTCRestAnyObject.cpp	(revision 74424)
+++ /trunk/src/VBox/Runtime/common/rest/RTCRestAnyObject.cpp	(revision 74425)
@@ -41,5 +41,5 @@
  * Default constructor.
  */
-RTCRestAnyObject::RTCRestAnyObject()
+RTCRestAnyObject::RTCRestAnyObject() RT_NOEXCEPT
     : RTCRestObjectBase()
     , m_pData(NULL)
@@ -90,5 +90,5 @@
  * Safe copy assignment method.
  */
-int RTCRestAnyObject::assignCopy(RTCRestAnyObject const &a_rThat)
+int RTCRestAnyObject::assignCopy(RTCRestAnyObject const &a_rThat) RT_NOEXCEPT
 {
     setNull();
@@ -126,5 +126,5 @@
  * Safe copy assignment method, boolean variant.
  */
-int RTCRestAnyObject::assignCopy(RTCRestBool const &a_rThat)
+int RTCRestAnyObject::assignCopy(RTCRestBool const &a_rThat) RT_NOEXCEPT
 {
     setNull();
@@ -143,5 +143,5 @@
  * Safe copy assignment method, int64_t variant.
  */
-int RTCRestAnyObject::assignCopy(RTCRestInt64 const &a_rThat)
+int RTCRestAnyObject::assignCopy(RTCRestInt64 const &a_rThat) RT_NOEXCEPT
 {
     setNull();
@@ -160,5 +160,5 @@
  * Safe copy assignment method, int32_t variant.
  */
-int RTCRestAnyObject::assignCopy(RTCRestInt32 const &a_rThat)
+int RTCRestAnyObject::assignCopy(RTCRestInt32 const &a_rThat) RT_NOEXCEPT
 {
     setNull();
@@ -177,5 +177,5 @@
  * Safe copy assignment method, int16_t variant.
  */
-int RTCRestAnyObject::assignCopy(RTCRestInt16 const &a_rThat)
+int RTCRestAnyObject::assignCopy(RTCRestInt16 const &a_rThat) RT_NOEXCEPT
 {
     setNull();
@@ -194,5 +194,5 @@
  * Safe copy assignment method, double variant.
  */
-int RTCRestAnyObject::assignCopy(RTCRestDouble const &a_rThat)
+int RTCRestAnyObject::assignCopy(RTCRestDouble const &a_rThat) RT_NOEXCEPT
 {
     setNull();
@@ -211,5 +211,5 @@
  * Safe copy assignment method, string variant.
  */
-int RTCRestAnyObject::assignCopy(RTCRestString const &a_rThat)
+int RTCRestAnyObject::assignCopy(RTCRestString const &a_rThat) RT_NOEXCEPT
 {
     setNull();
@@ -228,5 +228,5 @@
  * Safe copy assignment method, array variant.
  */
-int RTCRestAnyObject::assignCopy(RTCRestArray<RTCRestAnyObject> const &a_rThat)
+int RTCRestAnyObject::assignCopy(RTCRestArray<RTCRestAnyObject> const &a_rThat) RT_NOEXCEPT
 {
     setNull();
@@ -245,5 +245,5 @@
  * Safe copy assignment method, string map variant.
  */
-int RTCRestAnyObject::assignCopy(RTCRestStringMap<RTCRestAnyObject> const &a_rThat)
+int RTCRestAnyObject::assignCopy(RTCRestStringMap<RTCRestAnyObject> const &a_rThat) RT_NOEXCEPT
 {
     setNull();
@@ -262,5 +262,5 @@
  * Safe value assignment method, boolean variant.
  */
-int RTCRestAnyObject::assignValue(bool a_fValue)
+int RTCRestAnyObject::assignValue(bool a_fValue) RT_NOEXCEPT
 {
     setNull();
@@ -280,5 +280,5 @@
  * Safe value assignment method, int64_t variant.
  */
-int RTCRestAnyObject::assignValue(int64_t a_iValue)
+int RTCRestAnyObject::assignValue(int64_t a_iValue) RT_NOEXCEPT
 {
     setNull();
@@ -298,5 +298,5 @@
  * Safe value assignment method, int32_t variant.
  */
-int RTCRestAnyObject::assignValue(int32_t a_iValue)
+int RTCRestAnyObject::assignValue(int32_t a_iValue) RT_NOEXCEPT
 {
     setNull();
@@ -316,5 +316,5 @@
  * Safe value assignment method, int16_t variant.
  */
-int RTCRestAnyObject::assignValue(int16_t a_iValue)
+int RTCRestAnyObject::assignValue(int16_t a_iValue) RT_NOEXCEPT
 {
     setNull();
@@ -334,5 +334,5 @@
  * Safe value assignment method, double variant.
  */
-int RTCRestAnyObject::assignValue(double a_iValue)
+int RTCRestAnyObject::assignValue(double a_iValue) RT_NOEXCEPT
 {
     setNull();
@@ -352,5 +352,5 @@
  * Safe value assignment method, string variant.
  */
-int RTCRestAnyObject::assignValue(RTCString const &a_rValue)
+int RTCRestAnyObject::assignValue(RTCString const &a_rValue) RT_NOEXCEPT
 {
     setNull();
@@ -369,5 +369,5 @@
  * Safe value assignment method, C-string variant.
  */
-int RTCRestAnyObject::assignValue(const char *a_pszValue)
+int RTCRestAnyObject::assignValue(const char *a_pszValue) RT_NOEXCEPT
 {
     setNull();
@@ -383,5 +383,5 @@
 
 
-RTCRestObjectBase *RTCRestAnyObject::baseClone() const
+RTCRestObjectBase *RTCRestAnyObject::baseClone() const RT_NOEXCEPT
 {
     RTCRestAnyObject *pClone = new (std::nothrow) RTCRestAnyObject();
@@ -397,5 +397,5 @@
 
 
-int RTCRestAnyObject::setNull(void)
+int RTCRestAnyObject::setNull(void) RT_NOEXCEPT
 {
     if (m_pData)
@@ -408,5 +408,5 @@
 
 
-int RTCRestAnyObject::resetToDefault()
+int RTCRestAnyObject::resetToDefault() RT_NOEXCEPT
 {
     if (m_pData)
@@ -416,5 +416,5 @@
 
 
-RTCRestOutputBase &RTCRestAnyObject::serializeAsJson(RTCRestOutputBase &a_rDst) const
+RTCRestOutputBase &RTCRestAnyObject::serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT
 {
     if (m_pData)
@@ -425,5 +425,5 @@
 
 
-int RTCRestAnyObject::deserializeFromJson(RTCRestJsonCursor const &a_rCursor)
+int RTCRestAnyObject::deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT
 {
     setNull();
@@ -519,5 +519,5 @@
 
 
-int RTCRestAnyObject::toString(RTCString *a_pDst, uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) const
+int RTCRestAnyObject::toString(RTCString *a_pDst, uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) const RT_NOEXCEPT
 {
     if (m_pData)
@@ -530,5 +530,5 @@
 
 int RTCRestAnyObject::fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo /*= NULL*/,
-                                 uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/)
+                                 uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) RT_NOEXCEPT
 {
     return RTCRestObjectBase::fromString(a_rValue, a_pszName, a_pErrInfo, a_fFlags);
@@ -536,5 +536,5 @@
 
 
-RTCRestObjectBase::kTypeClass RTCRestAnyObject::typeClass(void) const
+RTCRestObjectBase::kTypeClass RTCRestAnyObject::typeClass(void) const RT_NOEXCEPT
 {
     return kTypeClass_AnyObject;
@@ -542,5 +542,5 @@
 
 
-const char *RTCRestAnyObject::typeName(void) const
+const char *RTCRestAnyObject::typeName(void) const RT_NOEXCEPT
 {
     if (m_pData)
@@ -576,5 +576,5 @@
  * Factory method.
  */
-/*static*/ DECLCALLBACK(RTCRestObjectBase *) RTCRestAnyObject::createInstance(void)
+/*static*/ DECLCALLBACK(RTCRestObjectBase *) RTCRestAnyObject::createInstance(void) RT_NOEXCEPT
 {
     return new (std::nothrow) RTCRestAnyObject();
Index: /trunk/src/VBox/Runtime/common/rest/RTCRestArrayBase.cpp
===================================================================
--- /trunk/src/VBox/Runtime/common/rest/RTCRestArrayBase.cpp	(revision 74424)
+++ /trunk/src/VBox/Runtime/common/rest/RTCRestArrayBase.cpp	(revision 74425)
@@ -47,5 +47,5 @@
  * Default destructor.
  */
-RTCRestArrayBase::RTCRestArrayBase()
+RTCRestArrayBase::RTCRestArrayBase() RT_NOEXCEPT
     : RTCRestObjectBase()
     , m_papElements(NULL)
@@ -91,10 +91,10 @@
 *********************************************************************************************************************************/
 
-RTCRestObjectBase *RTCRestArrayBase::baseClone() const
+RTCRestObjectBase *RTCRestArrayBase::baseClone() const RT_NOEXCEPT
 {
     RTCRestArrayBase *pClone = createClone();
     if (pClone)
     {
-        int rc = pClone->copyArrayWorker(*this, false /*fThrow*/);
+        int rc = pClone->copyArrayWorkerNoThrow(*this);
         if (RT_SUCCESS(rc))
             return pClone;
@@ -105,5 +105,5 @@
 
 
-int RTCRestArrayBase::resetToDefault()
+int RTCRestArrayBase::resetToDefault() RT_NOEXCEPT
 {
     /* The default state of an array is empty. At least for now. */
@@ -114,5 +114,5 @@
 
 
-RTCRestOutputBase &RTCRestArrayBase::serializeAsJson(RTCRestOutputBase &a_rDst) const
+RTCRestOutputBase &RTCRestArrayBase::serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT
 {
     if (!m_fNullIndicator)
@@ -132,5 +132,5 @@
 
 
-int RTCRestArrayBase::deserializeFromJson(RTCRestJsonCursor const &a_rCursor)
+int RTCRestArrayBase::deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT
 {
     /*
@@ -216,5 +216,5 @@
 
 
-int RTCRestArrayBase::toString(RTCString *a_pDst, uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) const
+int RTCRestArrayBase::toString(RTCString *a_pDst, uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) const RT_NOEXCEPT
 {
     int rc;
@@ -250,5 +250,5 @@
 
 int RTCRestArrayBase::fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo /*= NULL*/,
-                                 uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/)
+                                 uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) RT_NOEXCEPT
 {
     /*
@@ -312,5 +312,5 @@
 
 
-RTCRestObjectBase::kTypeClass RTCRestArrayBase::typeClass(void) const
+RTCRestObjectBase::kTypeClass RTCRestArrayBase::typeClass(void) const RT_NOEXCEPT
 {
     return kTypeClass_Array;
@@ -318,5 +318,5 @@
 
 
-const char *RTCRestArrayBase::typeName(void) const
+const char *RTCRestArrayBase::typeName(void) const RT_NOEXCEPT
 {
     return "RTCRestArray<ElementType>";
@@ -329,5 +329,5 @@
 *********************************************************************************************************************************/
 
-void RTCRestArrayBase::clear()
+void RTCRestArrayBase::clear() RT_NOEXCEPT
 {
     size_t i = m_cElements;
@@ -342,5 +342,5 @@
 
 
-bool RTCRestArrayBase::removeAt(size_t a_idx)
+bool RTCRestArrayBase::removeAt(size_t a_idx) RT_NOEXCEPT
 {
     if (a_idx == ~(size_t)0)
@@ -359,5 +359,5 @@
 
 
-int RTCRestArrayBase::ensureCapacity(size_t a_cEnsureCapacity)
+int RTCRestArrayBase::ensureCapacity(size_t a_cEnsureCapacity) RT_NOEXCEPT
 {
     if (m_cCapacity < a_cEnsureCapacity)
@@ -384,5 +384,5 @@
 
 
-int RTCRestArrayBase::copyArrayWorker(RTCRestArrayBase const &a_rThat, bool a_fThrow)
+int RTCRestArrayBase::copyArrayWorkerNoThrow(RTCRestArrayBase const &a_rThat) RT_NOEXCEPT
 {
     int rc;
@@ -405,6 +405,4 @@
                 if (RT_SUCCESS(rc))
                 { /* likely */ }
-                else if (a_fThrow)
-                    throw std::bad_alloc();
                 else
                     return rc;
@@ -415,6 +413,14 @@
 }
 
-
-int RTCRestArrayBase::insertWorker(size_t a_idx, RTCRestObjectBase *a_pValue, bool a_fReplace)
+void RTCRestArrayBase::copyArrayWorkerMayThrow(RTCRestArrayBase const &a_rThat)
+{
+    int rc = copyArrayWorkerNoThrow(a_rThat);
+    if (RT_SUCCESS(rc))
+        return;
+    throw std::bad_alloc();
+}
+
+
+int RTCRestArrayBase::insertWorker(size_t a_idx, RTCRestObjectBase *a_pValue, bool a_fReplace) RT_NOEXCEPT
 {
     AssertPtrReturn(a_pValue, VERR_INVALID_POINTER);
@@ -462,5 +468,5 @@
 
 
-int RTCRestArrayBase::insertCopyWorker(size_t a_idx, RTCRestObjectBase const &a_rValue, bool a_fReplace)
+int RTCRestArrayBase::insertCopyWorker(size_t a_idx, RTCRestObjectBase const &a_rValue, bool a_fReplace) RT_NOEXCEPT
 {
     int rc;
Index: /trunk/src/VBox/Runtime/common/rest/RTCRestClientApiBase.cpp
===================================================================
--- /trunk/src/VBox/Runtime/common/rest/RTCRestClientApiBase.cpp	(revision 74424)
+++ /trunk/src/VBox/Runtime/common/rest/RTCRestClientApiBase.cpp	(revision 74425)
@@ -43,5 +43,5 @@
  * Default constructor.
  */
-RTCRestClientApiBase::RTCRestClientApiBase()
+RTCRestClientApiBase::RTCRestClientApiBase() RT_NOEXCEPT
     : m_hHttp(NIL_RTHTTP)
 {
@@ -63,5 +63,5 @@
 
 
-const char *RTCRestClientApiBase::getServerUrl(void) const
+const char *RTCRestClientApiBase::getServerUrl(void) const RT_NOEXCEPT
 {
     if (m_strServerUrl.isEmpty())
@@ -71,5 +71,5 @@
 
 
-int RTCRestClientApiBase::setServerUrl(const char *a_pszUrl)
+int RTCRestClientApiBase::setServerUrl(const char *a_pszUrl) RT_NOEXCEPT
 {
 #ifdef RT_STRICT
@@ -87,5 +87,5 @@
 
 int RTCRestClientApiBase::setServerUrlPart(const char *a_pszServerUrl, size_t a_offDst, size_t a_cchDst,
-                                           const char *a_pszSrc, size_t a_cchSrc)
+                                           const char *a_pszSrc, size_t a_cchSrc) RT_NOEXCEPT
 {
     if (   a_cchDst == a_cchSrc
@@ -102,5 +102,5 @@
 
 
-int RTCRestClientApiBase::setServerScheme(const char *a_pszScheme)
+int RTCRestClientApiBase::setServerScheme(const char *a_pszScheme) RT_NOEXCEPT
 {
     /*
@@ -127,5 +127,5 @@
 
 
-int RTCRestClientApiBase::setServerAuthority(const char *a_pszAuthority)
+int RTCRestClientApiBase::setServerAuthority(const char *a_pszAuthority) RT_NOEXCEPT
 {
     /*
@@ -151,5 +151,5 @@
 
 
-int RTCRestClientApiBase::setServerBasePath(const char *a_pszBasePath)
+int RTCRestClientApiBase::setServerBasePath(const char *a_pszBasePath) RT_NOEXCEPT
 {
     /*
@@ -173,5 +173,5 @@
 
 
-int RTCRestClientApiBase::reinitHttpInstance()
+int RTCRestClientApiBase::reinitHttpInstance() RT_NOEXCEPT
 {
     if (m_hHttp != NIL_RTHTTP)
@@ -193,5 +193,5 @@
 
 int RTCRestClientApiBase::xmitReady(RTHTTP a_hHttp, RTCString const &a_rStrFullUrl, RTHTTPMETHOD a_enmHttpMethod,
-                                    RTCString const &a_rStrXmitBody, uint32_t a_fFlags)
+                                    RTCString const &a_rStrXmitBody, uint32_t a_fFlags) RT_NOEXCEPT
 {
     RT_NOREF(a_hHttp, a_rStrFullUrl, a_enmHttpMethod, a_rStrXmitBody, a_fFlags);
@@ -201,5 +201,5 @@
 
 int RTCRestClientApiBase::doCall(RTCRestClientRequestBase const &a_rRequest, RTHTTPMETHOD a_enmHttpMethod,
-                                 RTCRestClientResponseBase *a_pResponse, const char *a_pszMethod, uint32_t a_fFlags)
+                                 RTCRestClientResponseBase *a_pResponse, const char *a_pszMethod, uint32_t a_fFlags) RT_NOEXCEPT
 {
     LogFlow(("doCall: %s %s\n", a_pszMethod, RTHttpMethodName(a_enmHttpMethod)));
Index: /trunk/src/VBox/Runtime/common/rest/RTCRestClientApiBaseOci.cpp
===================================================================
--- /trunk/src/VBox/Runtime/common/rest/RTCRestClientApiBaseOci.cpp	(revision 74424)
+++ /trunk/src/VBox/Runtime/common/rest/RTCRestClientApiBaseOci.cpp	(revision 74425)
@@ -50,5 +50,5 @@
  * @param   pvContent
  */
-static int ociSignRequestEnsureDateOrXDate(RTHTTP hHttp)
+static int ociSignRequestEnsureDateOrXDate(RTHTTP hHttp) RT_NOEXCEPT
 {
     if (RTHttpGetHeader(hHttp, RT_STR_TUPLE("x-date")))
@@ -74,5 +74,5 @@
  * @param   pvContent
  */
-static int ociSignRequestEnsureXContentSha256(RTHTTP hHttp, void const *pvContent, size_t cbContent)
+static int ociSignRequestEnsureXContentSha256(RTHTTP hHttp, void const *pvContent, size_t cbContent) RT_NOEXCEPT
 {
     if (RTHttpGetHeader(hHttp, RT_STR_TUPLE("x-content-sha256")))
@@ -103,5 +103,5 @@
  * @param   cbContent   The content length.
  */
-static int ociSignRequestEnsureContentLength(RTHTTP hHttp, uint64_t cbContent)
+static int ociSignRequestEnsureContentLength(RTHTTP hHttp, uint64_t cbContent) RT_NOEXCEPT
 {
     if (RTHttpGetHeader(hHttp, RT_STR_TUPLE("Content-Length")))
@@ -121,5 +121,5 @@
  * @param   pszUrl      The URL.
  */
-static int ociSignRequestEnsureHost(RTHTTP hHttp, const char *pszUrl)
+static int ociSignRequestEnsureHost(RTHTTP hHttp, const char *pszUrl) RT_NOEXCEPT
 {
     if (RTHttpGetHeader(hHttp, RT_STR_TUPLE("host")))
@@ -136,5 +136,5 @@
 int RTCRestClientApiBase::ociSignRequest(RTHTTP a_hHttp, RTCString const &a_rStrFullUrl, RTHTTPMETHOD a_enmHttpMethod,
                                          RTCString const &a_rStrXmitBody, uint32_t a_fFlags,
-                                         RTCRKEY a_hKey, RTCString const &a_rStrKeyId)
+                                         RTCRKEY a_hKey, RTCString const &a_rStrKeyId) RT_NOEXCEPT
 {
     /*
Index: /trunk/src/VBox/Runtime/common/rest/RTCRestClientRequestBase.cpp
===================================================================
--- /trunk/src/VBox/Runtime/common/rest/RTCRestClientRequestBase.cpp	(revision 74424)
+++ /trunk/src/VBox/Runtime/common/rest/RTCRestClientRequestBase.cpp	(revision 74425)
@@ -41,5 +41,5 @@
  * Default constructor.
  */
-RTCRestClientRequestBase::RTCRestClientRequestBase()
+RTCRestClientRequestBase::RTCRestClientRequestBase() RT_NOEXCEPT
     : m_fIsSet(0)
     , m_fErrorSet(0)
@@ -51,5 +51,5 @@
  * Copy constructor.
  */
-RTCRestClientRequestBase::RTCRestClientRequestBase(RTCRestClientRequestBase const &a_rThat)
+RTCRestClientRequestBase::RTCRestClientRequestBase(RTCRestClientRequestBase const &a_rThat) RT_NOEXCEPT
     : m_fIsSet(a_rThat.m_fIsSet)
     , m_fErrorSet(a_rThat.m_fErrorSet)
@@ -70,5 +70,5 @@
  * Copy assignment operator.
  */
-RTCRestClientRequestBase &RTCRestClientRequestBase::operator=(RTCRestClientRequestBase const &a_rThat)
+RTCRestClientRequestBase &RTCRestClientRequestBase::operator=(RTCRestClientRequestBase const &a_rThat) RT_NOEXCEPT
 {
     m_fIsSet    = a_rThat.m_fIsSet;
@@ -80,5 +80,5 @@
 int RTCRestClientRequestBase::doPathParameters(RTCString *a_pStrPath, const char *a_pszPathTemplate, size_t a_cchPathTemplate,
                                                PATHPARAMDESC const *a_paPathParams, PATHPARAMSTATE *a_paPathParamStates,
-                                               size_t a_cPathParams) const
+                                               size_t a_cPathParams) const RT_NOEXCEPT
 {
     int rc = a_pStrPath->assignNoThrow(a_pszPathTemplate, a_cchPathTemplate);
@@ -127,5 +127,5 @@
 
 int RTCRestClientRequestBase::doQueryParameters(RTCString *a_pStrQuery, QUERYPARAMDESC const *a_paQueryParams,
-                                                RTCRestObjectBase const **a_papQueryParamObjs, size_t a_cQueryParams) const
+                                                RTCRestObjectBase const **a_papQueryParamObjs, size_t a_cQueryParams) const RT_NOEXCEPT
 {
     RTCString strTmpVal;
@@ -181,5 +181,5 @@
 
 int RTCRestClientRequestBase::doHeaderParameters(RTHTTP a_hHttp, HEADERPARAMDESC const *a_paHeaderParams,
-                                                 RTCRestObjectBase const **a_papHeaderParamObjs, size_t a_cHeaderParams) const
+                                                 RTCRestObjectBase const **a_papHeaderParamObjs, size_t a_cHeaderParams) const RT_NOEXCEPT
 {
     RTCString strTmpVal;
Index: /trunk/src/VBox/Runtime/common/rest/RTCRestClientResponseBase.cpp
===================================================================
--- /trunk/src/VBox/Runtime/common/rest/RTCRestClientResponseBase.cpp	(revision 74424)
+++ /trunk/src/VBox/Runtime/common/rest/RTCRestClientResponseBase.cpp	(revision 74425)
@@ -40,5 +40,5 @@
  * Default constructor.
  */
-RTCRestClientResponseBase::RTCRestClientResponseBase()
+RTCRestClientResponseBase::RTCRestClientResponseBase() RT_NOEXCEPT
     : m_rcStatus(VERR_WRONG_ORDER)
     , m_rcHttp(VERR_NOT_AVAILABLE)
@@ -88,5 +88,5 @@
 
 
-void RTCRestClientResponseBase::reset()
+void RTCRestClientResponseBase::reset() RT_NOEXCEPT
 {
     /* Return to default constructor state. */
@@ -99,5 +99,5 @@
 
 
-int RTCRestClientResponseBase::receivePrepare(RTHTTP a_hHttp)
+int RTCRestClientResponseBase::receivePrepare(RTHTTP a_hHttp) RT_NOEXCEPT
 {
     int rc = RTHttpSetHeaderCallback(a_hHttp, receiveHttpHeaderCallback, this);
@@ -108,5 +108,5 @@
 
 
-void RTCRestClientResponseBase::receiveComplete(int a_rcStatus, RTHTTP a_hHttp)
+void RTCRestClientResponseBase::receiveComplete(int a_rcStatus, RTHTTP a_hHttp) RT_NOEXCEPT
 {
     RT_NOREF_PV(a_hHttp);
@@ -121,5 +121,5 @@
 
 int RTCRestClientResponseBase::consumeHeader(uint32_t a_uMatchWord, const char *a_pchField, size_t a_cchField,
-                                             const char *a_pchValue, size_t a_cchValue)
+                                             const char *a_pchValue, size_t a_cchValue) RT_NOEXCEPT
 {
     if (   a_uMatchWord == RTHTTP_MAKE_HDR_MATCH_WORD(sizeof("Content-Type") - 1, 'c', 'o', 'n')
@@ -138,5 +138,5 @@
 /*static*/ DECLCALLBACK(int)
 RTCRestClientResponseBase::receiveHttpHeaderCallback(RTHTTP hHttp, uint32_t uMatchWord, const char *pchField, size_t cchField,
-                                                     const char *pchValue, size_t cchValue, void *pvUser)
+                                                     const char *pchValue, size_t cchValue, void *pvUser) RT_NOEXCEPT
 {
     RTCRestClientResponseBase *pThis = (RTCRestClientResponseBase *)pvUser;
@@ -146,5 +146,5 @@
 
 
-void RTCRestClientResponseBase::consumeBody(const char *a_pchData, size_t a_cbData)
+void RTCRestClientResponseBase::consumeBody(const char *a_pchData, size_t a_cbData) RT_NOEXCEPT
 {
     RT_NOREF(a_pchData, a_cbData);
@@ -152,10 +152,10 @@
 
 
-void RTCRestClientResponseBase::receiveFinal()
-{
-}
-
-
-PRTERRINFO RTCRestClientResponseBase::getErrInfoInternal(void)
+void RTCRestClientResponseBase::receiveFinal() RT_NOEXCEPT
+{
+}
+
+
+PRTERRINFO RTCRestClientResponseBase::getErrInfoInternal(void) RT_NOEXCEPT
 {
     if (m_pErrInfo)
@@ -169,5 +169,5 @@
 
 
-void RTCRestClientResponseBase::deleteErrInfo(void)
+void RTCRestClientResponseBase::deleteErrInfo(void) RT_NOEXCEPT
 {
     if (m_pErrInfo)
@@ -179,5 +179,5 @@
 
 
-void RTCRestClientResponseBase::copyErrInfo(PCRTERRINFO pErrInfo)
+void RTCRestClientResponseBase::copyErrInfo(PCRTERRINFO pErrInfo) RT_NOEXCEPT
 {
     deleteErrInfo();
@@ -192,5 +192,5 @@
 
 
-int RTCRestClientResponseBase::addError(int rc, const char *pszFormat, ...)
+int RTCRestClientResponseBase::addError(int rc, const char *pszFormat, ...) RT_NOEXCEPT
 {
     PRTERRINFO pErrInfo = getErrInfoInternal();
@@ -214,5 +214,5 @@
 
 RTCRestClientResponseBase::PrimaryJsonCursorForBody::PrimaryJsonCursorForBody(RTJSONVAL hValue, const char *pszName,
-                                                                              RTCRestClientResponseBase *a_pThat)
+                                                                              RTCRestClientResponseBase *a_pThat) RT_NOEXCEPT
     : RTCRestJsonPrimaryCursor(hValue, pszName, a_pThat->getErrInfoInternal())
     , m_pThat(a_pThat)
@@ -222,5 +222,5 @@
 
 int RTCRestClientResponseBase::PrimaryJsonCursorForBody::addError(RTCRestJsonCursor const &a_rCursor, int a_rc,
-                                                                  const char *a_pszFormat, ...)
+                                                                  const char *a_pszFormat, ...) RT_NOEXCEPT
 {
     va_list va;
@@ -233,5 +233,5 @@
 
 
-int RTCRestClientResponseBase::PrimaryJsonCursorForBody::unknownField(RTCRestJsonCursor const &a_rCursor)
+int RTCRestClientResponseBase::PrimaryJsonCursorForBody::unknownField(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT
 {
     char szPath[256];
@@ -243,5 +243,5 @@
 
 int RTCRestClientResponseBase::deserializeHeader(RTCRestObjectBase *a_pObj, const char *a_pchValue, size_t a_cchValue,
-                                                 uint32_t a_fFlags, const char *a_pszErrorTag)
+                                                 uint32_t a_fFlags, const char *a_pszErrorTag) RT_NOEXCEPT
 {
     /*
@@ -280,5 +280,5 @@
 int RTCRestClientResponseBase::deserializeHeaderIntoMap(RTCRestStringMapBase *a_pMap, const char *a_pchField, size_t a_cchField,
                                                         const char *a_pchValue, size_t a_cchValue, uint32_t a_fFlags,
-                                                        const char *a_pszErrorTag)
+                                                        const char *a_pszErrorTag) RT_NOEXCEPT
 {
     /*
@@ -336,5 +336,5 @@
 
 
-void RTCRestClientResponseBase::deserializeBody(const char *a_pchData, size_t a_cbData, const char *a_pszBodyName)
+void RTCRestClientResponseBase::deserializeBody(const char *a_pchData, size_t a_cbData, const char *a_pszBodyName) RT_NOEXCEPT
 {
     if (m_strContentType.startsWith("application/json"))
@@ -373,5 +373,5 @@
 
 
-void RTCRestClientResponseBase::deserializeBodyFromJsonCursor(RTCRestJsonCursor const &a_rCursor)
+void RTCRestClientResponseBase::deserializeBodyFromJsonCursor(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT
 {
     a_rCursor.m_pPrimary->addError(a_rCursor, VERR_REST_INTERNAL_ERROR_8, "deserializeBodyFromJsonCursor must be overridden!");
Index: /trunk/src/VBox/Runtime/common/rest/RTCRestJsonPrimaryCursor.cpp
===================================================================
--- /trunk/src/VBox/Runtime/common/rest/RTCRestJsonPrimaryCursor.cpp	(revision 74424)
+++ /trunk/src/VBox/Runtime/common/rest/RTCRestJsonPrimaryCursor.cpp	(revision 74425)
@@ -36,5 +36,5 @@
 
 
-char *RTCRestJsonPrimaryCursor::getPath(RTCRestJsonCursor const &a_rCursor, char *pszDst, size_t cbDst) const
+char *RTCRestJsonPrimaryCursor::getPath(RTCRestJsonCursor const &a_rCursor, char *pszDst, size_t cbDst) const RT_NOEXCEPT
 {
     AssertReturn(cbDst > 0, NULL);
@@ -90,5 +90,5 @@
 
 
-int RTCRestJsonPrimaryCursor::addError(RTCRestJsonCursor const &a_rCursor, int a_rc, const char *a_pszFormat, ...)
+int RTCRestJsonPrimaryCursor::addError(RTCRestJsonCursor const &a_rCursor, int a_rc, const char *a_pszFormat, ...) RT_NOEXCEPT
 {
     va_list va;
@@ -101,5 +101,5 @@
 
 
-int RTCRestJsonPrimaryCursor::unknownField(RTCRestJsonCursor const &a_rCursor)
+int RTCRestJsonPrimaryCursor::unknownField(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT
 {
     char szPath[128];
Index: /trunk/src/VBox/Runtime/common/rest/RTCRestOutputBase.cpp
===================================================================
--- /trunk/src/VBox/Runtime/common/rest/RTCRestOutputBase.cpp	(revision 74424)
+++ /trunk/src/VBox/Runtime/common/rest/RTCRestOutputBase.cpp	(revision 74425)
@@ -36,5 +36,5 @@
 
 
-RTCRestOutputBase::RTCRestOutputBase()
+RTCRestOutputBase::RTCRestOutputBase() RT_NOEXCEPT
     : m_uState(0)
 {
@@ -47,5 +47,5 @@
 
 
-size_t RTCRestOutputBase::vprintf(const char *pszFormat, va_list va)
+size_t RTCRestOutputBase::vprintf(const char *pszFormat, va_list va) RT_NOEXCEPT
 {
     return RTStrFormatV(printfOutputCallback, this, NULL, NULL, pszFormat, va);
@@ -53,5 +53,5 @@
 
 
-/*static*/ DECLCALLBACK(size_t) RTCRestOutputBase::printfOutputCallback(void *pvArg, const char *pachChars, size_t cbChars)
+/*static*/ DECLCALLBACK(size_t) RTCRestOutputBase::printfOutputCallback(void *pvArg, const char *pachChars, size_t cbChars) RT_NOEXCEPT
 {
     return ((RTCRestOutputBase *)pvArg)->output(pachChars, cbChars);
@@ -59,5 +59,5 @@
 
 
-uint32_t RTCRestOutputBase::beginArray()
+uint32_t RTCRestOutputBase::beginArray() RT_NOEXCEPT
 {
     output(RT_STR_TUPLE("["));
@@ -68,5 +68,5 @@
 
 
-void RTCRestOutputBase::endArray(uint32_t a_uOldState)
+void RTCRestOutputBase::endArray(uint32_t a_uOldState) RT_NOEXCEPT
 {
     m_uState = a_uOldState;
@@ -75,5 +75,5 @@
 
 
-uint32_t RTCRestOutputBase::beginObject()
+uint32_t RTCRestOutputBase::beginObject() RT_NOEXCEPT
 {
     output(RT_STR_TUPLE("{"));
@@ -84,5 +84,5 @@
 
 
-void RTCRestOutputBase::endObject(uint32_t a_uOldState)
+void RTCRestOutputBase::endObject(uint32_t a_uOldState) RT_NOEXCEPT
 {
     m_uState = a_uOldState;
@@ -91,5 +91,5 @@
 
 
-void RTCRestOutputBase::valueSeparator()
+void RTCRestOutputBase::valueSeparator() RT_NOEXCEPT
 {
     if (m_uState & RT_BIT_32(31))
@@ -100,5 +100,5 @@
 
 
-void RTCRestOutputBase::valueSeparatorAndName(const char *a_pszName, size_t a_cchName)
+void RTCRestOutputBase::valueSeparatorAndName(const char *a_pszName, size_t a_cchName) RT_NOEXCEPT
 {
     RT_NOREF(a_cchName);
@@ -113,5 +113,5 @@
 
 
-void RTCRestOutputBase::nullValue()
+void RTCRestOutputBase::nullValue() RT_NOEXCEPT
 {
     output(RT_STR_TUPLE("null"));
Index: /trunk/src/VBox/Runtime/common/rest/RTCRestOutputPrettyBase.cpp
===================================================================
--- /trunk/src/VBox/Runtime/common/rest/RTCRestOutputPrettyBase.cpp	(revision 74424)
+++ /trunk/src/VBox/Runtime/common/rest/RTCRestOutputPrettyBase.cpp	(revision 74425)
@@ -36,5 +36,5 @@
 
 
-RTCRestOutputPrettyBase::RTCRestOutputPrettyBase()
+RTCRestOutputPrettyBase::RTCRestOutputPrettyBase() RT_NOEXCEPT
     : RTCRestOutputBase()
 {
@@ -47,5 +47,5 @@
 
 
-uint32_t RTCRestOutputPrettyBase::beginArray()
+uint32_t RTCRestOutputPrettyBase::beginArray() RT_NOEXCEPT
 {
     output(RT_STR_TUPLE("["));
@@ -56,5 +56,5 @@
 
 
-void RTCRestOutputPrettyBase::endArray(uint32_t a_uOldState)
+void RTCRestOutputPrettyBase::endArray(uint32_t a_uOldState) RT_NOEXCEPT
 {
     m_uState = a_uOldState;
@@ -65,5 +65,5 @@
 
 
-uint32_t RTCRestOutputPrettyBase::beginObject()
+uint32_t RTCRestOutputPrettyBase::beginObject() RT_NOEXCEPT
 {
     output(RT_STR_TUPLE("{"));
@@ -74,5 +74,5 @@
 
 
-void RTCRestOutputPrettyBase::endObject(uint32_t a_uOldState)
+void RTCRestOutputPrettyBase::endObject(uint32_t a_uOldState) RT_NOEXCEPT
 {
     m_uState = a_uOldState;
@@ -83,5 +83,5 @@
 
 
-void RTCRestOutputPrettyBase::valueSeparator()
+void RTCRestOutputPrettyBase::valueSeparator() RT_NOEXCEPT
 {
     if (m_uState & RT_BIT_32(31))
@@ -96,5 +96,5 @@
 
 
-void RTCRestOutputPrettyBase::valueSeparatorAndName(const char *a_pszName, size_t a_cchName)
+void RTCRestOutputPrettyBase::valueSeparatorAndName(const char *a_pszName, size_t a_cchName) RT_NOEXCEPT
 {
     RT_NOREF(a_cchName);
@@ -111,5 +111,5 @@
 
 
-void RTCRestOutputPrettyBase::outputIndentation()
+void RTCRestOutputPrettyBase::outputIndentation() RT_NOEXCEPT
 {
     static char const s_szSpaces[] = "                                                                                         ";
Index: /trunk/src/VBox/Runtime/common/rest/RTCRestOutputPrettyToString.cpp
===================================================================
--- /trunk/src/VBox/Runtime/common/rest/RTCRestOutputPrettyToString.cpp	(revision 74424)
+++ /trunk/src/VBox/Runtime/common/rest/RTCRestOutputPrettyToString.cpp	(revision 74425)
@@ -36,5 +36,5 @@
 
 
-RTCRestOutputPrettyToString::RTCRestOutputPrettyToString(RTCString *a_pDst, bool a_fAppend /*= false*/)
+RTCRestOutputPrettyToString::RTCRestOutputPrettyToString(RTCString *a_pDst, bool a_fAppend /*= false*/) RT_NOEXCEPT
     : RTCRestOutputPrettyBase()
     , m_pDst(a_pDst)
@@ -53,5 +53,5 @@
 
 
-size_t RTCRestOutputPrettyToString::output(const char *a_pchString, size_t a_cchToWrite)
+size_t RTCRestOutputPrettyToString::output(const char *a_pchString, size_t a_cchToWrite) RT_NOEXCEPT
 {
     if (a_cchToWrite)
@@ -108,5 +108,5 @@
 
 
-RTCString *RTCRestOutputPrettyToString::finalize()
+RTCString *RTCRestOutputPrettyToString::finalize() RT_NOEXCEPT
 {
     RTCString *pRet;
Index: /trunk/src/VBox/Runtime/common/rest/RTCRestOutputToString.cpp
===================================================================
--- /trunk/src/VBox/Runtime/common/rest/RTCRestOutputToString.cpp	(revision 74424)
+++ /trunk/src/VBox/Runtime/common/rest/RTCRestOutputToString.cpp	(revision 74425)
@@ -36,5 +36,5 @@
 
 
-RTCRestOutputToString::RTCRestOutputToString(RTCString *a_pDst, bool a_fAppend /*= false*/)
+RTCRestOutputToString::RTCRestOutputToString(RTCString *a_pDst, bool a_fAppend /*= false*/) RT_NOEXCEPT
     : RTCRestOutputBase()
     , m_pDst(a_pDst)
@@ -53,5 +53,5 @@
 
 
-size_t RTCRestOutputToString::output(const char *a_pchString, size_t a_cchToWrite)
+size_t RTCRestOutputToString::output(const char *a_pchString, size_t a_cchToWrite) RT_NOEXCEPT
 {
     if (a_cchToWrite)
@@ -108,5 +108,5 @@
 
 
-RTCString *RTCRestOutputToString::finalize()
+RTCString *RTCRestOutputToString::finalize() RT_NOEXCEPT
 {
     RTCString *pRet;
Index: /trunk/src/VBox/Runtime/common/rest/RTCRestStringMapBase.cpp
===================================================================
--- /trunk/src/VBox/Runtime/common/rest/RTCRestStringMapBase.cpp	(revision 74424)
+++ /trunk/src/VBox/Runtime/common/rest/RTCRestStringMapBase.cpp	(revision 74425)
@@ -40,5 +40,5 @@
  * Default destructor.
  */
-RTCRestStringMapBase::RTCRestStringMapBase()
+RTCRestStringMapBase::RTCRestStringMapBase() RT_NOEXCEPT
     : RTCRestObjectBase()
     , m_Map(NULL)
@@ -75,10 +75,10 @@
 *********************************************************************************************************************************/
 
-RTCRestObjectBase *RTCRestStringMapBase::baseClone() const
+RTCRestObjectBase *RTCRestStringMapBase::baseClone() const RT_NOEXCEPT
 {
     RTCRestStringMapBase *pClone = createClone();
     if (pClone)
     {
-        int rc = pClone->copyMapWorker(*this, false /*fThrow*/);
+        int rc = pClone->copyMapWorkerNoThrow(*this);
         if (RT_SUCCESS(rc))
             return pClone;
@@ -89,5 +89,5 @@
 
 
-int RTCRestStringMapBase::resetToDefault()
+int RTCRestStringMapBase::resetToDefault() RT_NOEXCEPT
 {
     /* Default is an empty map. */
@@ -98,5 +98,5 @@
 
 
-RTCRestOutputBase &RTCRestStringMapBase::serializeAsJson(RTCRestOutputBase &a_rDst) const
+RTCRestOutputBase &RTCRestStringMapBase::serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT
 {
     if (!m_fNullIndicator)
@@ -117,5 +117,5 @@
 
 
-int RTCRestStringMapBase::deserializeFromJson(RTCRestJsonCursor const &a_rCursor)
+int RTCRestStringMapBase::deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT
 {
     /*
@@ -209,5 +209,5 @@
 
 
-RTCRestObjectBase::kTypeClass RTCRestStringMapBase::typeClass(void) const
+RTCRestObjectBase::kTypeClass RTCRestStringMapBase::typeClass(void) const RT_NOEXCEPT
 {
     return kTypeClass_StringMap;
@@ -215,5 +215,5 @@
 
 
-const char *RTCRestStringMapBase::typeName(void) const
+const char *RTCRestStringMapBase::typeName(void) const RT_NOEXCEPT
 {
     return "RTCRestStringMap<ValueType>";
@@ -228,5 +228,5 @@
  * @callback_method_impl{FNRTSTRSPACECALLBACK}
  */
-/*static*/ DECLCALLBACK(int) RTCRestStringMapBase::stringSpaceDestructorCallback(PRTSTRSPACECORE pStr, void *pvUser)
+/*static*/ DECLCALLBACK(int) RTCRestStringMapBase::stringSpaceDestructorCallback(PRTSTRSPACECORE pStr, void *pvUser) RT_NOEXCEPT
 {
     MapEntry *pNode = (MapEntry *)pStr;
@@ -244,5 +244,5 @@
 
 
-void RTCRestStringMapBase::clear()
+void RTCRestStringMapBase::clear() RT_NOEXCEPT
 {
     RTStrSpaceDestroy(&m_Map, stringSpaceDestructorCallback, NULL);
@@ -253,5 +253,5 @@
 
 
-size_t RTCRestStringMapBase::size() const
+size_t RTCRestStringMapBase::size() const RT_NOEXCEPT
 {
     return m_cEntries;
@@ -259,5 +259,5 @@
 
 
-bool RTCRestStringMapBase::containsKey(const char *a_pszKey) const
+bool RTCRestStringMapBase::containsKey(const char *a_pszKey) const RT_NOEXCEPT
 {
     return RTStrSpaceGet((PRTSTRSPACE)&m_Map, a_pszKey) != NULL;
@@ -265,5 +265,5 @@
 
 
-bool RTCRestStringMapBase::containsKey(RTCString const &a_rStrKey) const
+bool RTCRestStringMapBase::containsKey(RTCString const &a_rStrKey) const RT_NOEXCEPT
 {
     return containsKey(a_rStrKey.c_str());
@@ -271,5 +271,5 @@
 
 
-bool RTCRestStringMapBase::remove(const char *a_pszKey)
+bool RTCRestStringMapBase::remove(const char *a_pszKey) RT_NOEXCEPT
 {
     MapEntry *pRemoved = (MapEntry *)RTStrSpaceRemove(&m_Map, a_pszKey);
@@ -285,5 +285,5 @@
 
 
-bool RTCRestStringMapBase::remove(RTCString const &a_rStrKey)
+bool RTCRestStringMapBase::remove(RTCString const &a_rStrKey) RT_NOEXCEPT
 {
     return remove(a_rStrKey.c_str());
@@ -292,5 +292,5 @@
 
 int RTCRestStringMapBase::putNewValue(RTCRestObjectBase **a_ppValue, const char *a_pszKey, size_t a_cchKey /*= RTSTR_MAX*/,
-                                      bool a_fReplace /*= false*/)
+                                      bool a_fReplace /*= false*/) RT_NOEXCEPT
 {
     RTCRestObjectBase *pValue = createValue();
@@ -312,5 +312,5 @@
 
 
-int RTCRestStringMapBase::putNewValue(RTCRestObjectBase **a_ppValue, RTCString const &a_rStrKey, bool a_fReplace /*= false*/)
+int RTCRestStringMapBase::putNewValue(RTCRestObjectBase **a_ppValue, RTCString const &a_rStrKey, bool a_fReplace /*= false*/) RT_NOEXCEPT
 {
     return putNewValue(a_ppValue, a_rStrKey.c_str(), a_rStrKey.length(), a_fReplace);
@@ -322,5 +322,5 @@
 *********************************************************************************************************************************/
 
-int RTCRestStringMapBase::copyMapWorker(RTCRestStringMapBase const &a_rThat, bool a_fThrow)
+int RTCRestStringMapBase::copyMapWorkerNoThrow(RTCRestStringMapBase const &a_rThat) RT_NOEXCEPT
 {
     Assert(this != &a_rThat);
@@ -336,6 +336,4 @@
             if (RT_SUCCESS(rc))
             { /* likely */ }
-            else if (a_fThrow)
-                throw std::bad_alloc();
             else
                 return rc;
@@ -347,6 +345,15 @@
 
 
+void RTCRestStringMapBase::copyMapWorkerMayThrow(RTCRestStringMapBase const &a_rThat)
+{
+    int rc = copyMapWorkerNoThrow(a_rThat);
+    if (RT_SUCCESS(rc))
+        return;
+    throw std::bad_alloc();
+}
+
+
 int RTCRestStringMapBase::putWorker(const char *a_pszKey, RTCRestObjectBase *a_pValue, bool a_fReplace,
-                                    size_t a_cchKey /*= RTSTR_MAX*/)
+                                    size_t a_cchKey /*= RTSTR_MAX*/) RT_NOEXCEPT
 {
     int rc;
@@ -396,5 +403,5 @@
 
 int RTCRestStringMapBase::putCopyWorker(const char *a_pszKey, RTCRestObjectBase const &a_rValue, bool a_fReplace,
-                                        size_t a_cchKey /*= RTSTR_MAX*/)
+                                        size_t a_cchKey /*= RTSTR_MAX*/) RT_NOEXCEPT
 {
     int rc;
@@ -414,5 +421,5 @@
 
 
-RTCRestObjectBase *RTCRestStringMapBase::getWorker(const char *a_pszKey)
+RTCRestObjectBase *RTCRestStringMapBase::getWorker(const char *a_pszKey) RT_NOEXCEPT
 {
     MapEntry *pHit = (MapEntry *)RTStrSpaceGet(&m_Map, a_pszKey);
@@ -423,5 +430,5 @@
 
 
-RTCRestObjectBase const *RTCRestStringMapBase::getWorker(const char *a_pszKey) const
+RTCRestObjectBase const *RTCRestStringMapBase::getWorker(const char *a_pszKey) const RT_NOEXCEPT
 {
     MapEntry const *pHit = (MapEntry const *)RTStrSpaceGet((PRTSTRSPACE)&m_Map, a_pszKey);
Index: /trunk/src/VBox/Runtime/common/rest/rest-binary.cpp
===================================================================
--- /trunk/src/VBox/Runtime/common/rest/rest-binary.cpp	(revision 74424)
+++ /trunk/src/VBox/Runtime/common/rest/rest-binary.cpp	(revision 74425)
@@ -56,5 +56,5 @@
  * Default constructor.
  */
-RTCRestBinary::RTCRestBinary()
+RTCRestBinary::RTCRestBinary() RT_NOEXCEPT
     : m_pbData(NULL)
     , m_cbData(0)
@@ -77,5 +77,5 @@
  * Safe copy assignment method.
  */
-int RTCRestBinary::assignCopy(RTCRestBinary const &a_rThat)
+int RTCRestBinary::assignCopy(RTCRestBinary const &a_rThat) RT_NOEXCEPT
 {
     freeData();
@@ -99,5 +99,5 @@
  * Safe buffer copy method.
  */
-int RTCRestBinary::assignCopy(void const *a_pvData, size_t a_cbData)
+int RTCRestBinary::assignCopy(void const *a_pvData, size_t a_cbData) RT_NOEXCEPT
 {
     if (   m_pbData == NULL
@@ -126,5 +126,5 @@
  * Use the specified data buffer directly.
  */
-int RTCRestBinary::assignReadOnly(void const *a_pvData, size_t a_cbData)
+int RTCRestBinary::assignReadOnly(void const *a_pvData, size_t a_cbData) RT_NOEXCEPT
 {
     freeData();
@@ -145,5 +145,5 @@
  * Use the specified data buffer directly.
  */
-int RTCRestBinary::assignWriteable(void *a_pvBuf, size_t a_cbBuf)
+int RTCRestBinary::assignWriteable(void *a_pvBuf, size_t a_cbBuf) RT_NOEXCEPT
 {
     freeData();
@@ -164,5 +164,5 @@
  * Frees the data held by the object and resets it default state.
  */
-void RTCRestBinary::freeData()
+void RTCRestBinary::freeData() RT_NOEXCEPT
 {
     if (m_fFreeable)
@@ -178,5 +178,5 @@
 /* Overridden methods: */
 
-RTCRestObjectBase *RTCRestBinary::baseClone() const
+RTCRestObjectBase *RTCRestBinary::baseClone() const RT_NOEXCEPT
 {
     RTCRestBinary *pClone = new (std::nothrow) RTCRestBinary();
@@ -192,5 +192,5 @@
 
 
-int RTCRestBinary::setNull(void)
+int RTCRestBinary::setNull(void) RT_NOEXCEPT
 {
     freeData();
@@ -200,12 +200,12 @@
 
 
-int RTCRestBinary::resetToDefault(void)
-{
-    freeData();
-    return VINF_SUCCESS;
-}
-
-
-RTCRestOutputBase &RTCRestBinary::serializeAsJson(RTCRestOutputBase &a_rDst) const
+int RTCRestBinary::resetToDefault(void) RT_NOEXCEPT
+{
+    freeData();
+    return VINF_SUCCESS;
+}
+
+
+RTCRestOutputBase &RTCRestBinary::serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT
 {
     AssertMsgFailed(("We should never get here!\n"));
@@ -215,5 +215,5 @@
 
 
-int RTCRestBinary::deserializeFromJson(RTCRestJsonCursor const &a_rCursor)
+int RTCRestBinary::deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT
 {
     return a_rCursor.m_pPrimary->addError(a_rCursor, VERR_NOT_SUPPORTED, "RTCRestBinary does not support deserialization!");
@@ -221,5 +221,5 @@
 
 
-int RTCRestBinary::toString(RTCString *a_pDst, uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) const
+int RTCRestBinary::toString(RTCString *a_pDst, uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) const RT_NOEXCEPT
 {
     RT_NOREF(a_pDst, a_fFlags);
@@ -229,5 +229,5 @@
 
 int RTCRestBinary::fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo/*= NULL*/,
-                              uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/)
+                              uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) RT_NOEXCEPT
 {
     RT_NOREF(a_rValue, a_pszName, a_fFlags);
@@ -236,5 +236,5 @@
 
 
-RTCRestObjectBase::kTypeClass RTCRestBinary::typeClass(void) const
+RTCRestObjectBase::kTypeClass RTCRestBinary::typeClass(void) const RT_NOEXCEPT
 {
     return kTypeClass_Binary;
@@ -242,5 +242,5 @@
 
 
-const char *RTCRestBinary::typeName(void) const
+const char *RTCRestBinary::typeName(void) const RT_NOEXCEPT
 {
     return "RTCRestBinary";
@@ -249,5 +249,5 @@
 
 /** Factory method. */
-/*static*/ DECLCALLBACK(RTCRestObjectBase *) RTCRestBinary::createInstance(void)
+/*static*/ DECLCALLBACK(RTCRestObjectBase *) RTCRestBinary::createInstance(void) RT_NOEXCEPT
 {
     return new (std::nothrow) RTCRestBinary();
@@ -259,5 +259,5 @@
  */
 /*static*/ DECLCALLBACK(int)
-RTCRestBinary::deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance)
+RTCRestBinary::deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT
 {
     RTCRestObjectBase *pObj;
@@ -277,5 +277,5 @@
  * Default constructor.
  */
-RTCRestBinaryParameter::RTCRestBinaryParameter()
+RTCRestBinaryParameter::RTCRestBinaryParameter() RT_NOEXCEPT
     : RTCRestBinary()
     , m_cbContentLength(UINT64_MAX)
@@ -287,5 +287,5 @@
 
 
-int RTCRestBinaryParameter::assignCopy(RTCRestBinaryParameter const &a_rThat)
+int RTCRestBinaryParameter::assignCopy(RTCRestBinaryParameter const &a_rThat) RT_NOEXCEPT
 {
     AssertReturn(a_rThat.m_pfnProducer, VERR_INVALID_STATE);
@@ -300,5 +300,5 @@
 
 
-int RTCRestBinaryParameter::assignCopy(RTCRestBinary const &a_rThat)
+int RTCRestBinaryParameter::assignCopy(RTCRestBinary const &a_rThat) RT_NOEXCEPT
 {
     m_cbContentLength = a_rThat.getSize();
@@ -310,5 +310,5 @@
 
 
-int RTCRestBinaryParameter::assignCopy(void const *a_pvData, size_t a_cbData)
+int RTCRestBinaryParameter::assignCopy(void const *a_pvData, size_t a_cbData) RT_NOEXCEPT
 {
     m_cbContentLength = a_cbData;
@@ -319,5 +319,5 @@
 
 
-int RTCRestBinaryParameter::assignReadOnly(void const *a_pvData, size_t a_cbData)
+int RTCRestBinaryParameter::assignReadOnly(void const *a_pvData, size_t a_cbData) RT_NOEXCEPT
 {
     m_cbContentLength = a_cbData;
@@ -328,5 +328,5 @@
 
 
-int RTCRestBinaryParameter::assignWriteable(void *a_pvBuf, size_t a_cbBuf)
+int RTCRestBinaryParameter::assignWriteable(void *a_pvBuf, size_t a_cbBuf) RT_NOEXCEPT
 {
     AssertMsgFailed(("Please use assignReadOnly!\n"));
@@ -335,5 +335,5 @@
 
 
-RTCRestObjectBase *RTCRestBinaryParameter::baseClone() const
+RTCRestObjectBase *RTCRestBinaryParameter::baseClone() const RT_NOEXCEPT
 {
     RTCRestBinaryParameter *pClone = new (std::nothrow) RTCRestBinaryParameter();
@@ -349,5 +349,5 @@
 
 
-int RTCRestBinaryParameter::resetToDefault()
+int RTCRestBinaryParameter::resetToDefault() RT_NOEXCEPT
 {
     m_cbContentLength = UINT64_MAX;
@@ -358,5 +358,5 @@
 
 
-const char *RTCRestBinaryParameter::typeName(void) const
+const char *RTCRestBinaryParameter::typeName(void) const RT_NOEXCEPT
 {
     return "RTCRestBinaryParameter";
@@ -364,5 +364,5 @@
 
 
-/*static*/ DECLCALLBACK(RTCRestObjectBase *) RTCRestBinaryParameter::createInstance(void)
+/*static*/ DECLCALLBACK(RTCRestObjectBase *) RTCRestBinaryParameter::createInstance(void) RT_NOEXCEPT
 {
     return new (std::nothrow) RTCRestBinaryParameter();
@@ -370,5 +370,5 @@
 
 
-int RTCRestBinaryParameter::setContentType(const char *a_pszContentType)
+int RTCRestBinaryParameter::setContentType(const char *a_pszContentType) RT_NOEXCEPT
 {
     return m_strContentType.assignNoThrow(a_pszContentType);
@@ -377,5 +377,5 @@
 
 void RTCRestBinaryParameter::setProducerCallback(PFNPRODUCER a_pfnProducer,  void *a_pvCallbackData /*= NULL*/,
-                                                 uint64_t a_cbContentLength /*= UINT64_MAX*/)
+                                                 uint64_t a_cbContentLength /*= UINT64_MAX*/) RT_NOEXCEPT
 {
     freeData();
@@ -387,5 +387,5 @@
 
 
-int RTCRestBinaryParameter::xmitPrepare(RTHTTP a_hHttp) const
+int RTCRestBinaryParameter::xmitPrepare(RTHTTP a_hHttp) const RT_NOEXCEPT
 {
     AssertReturn(m_pbData != NULL || m_pfnProducer != NULL || m_cbContentLength == 0, VERR_INVALID_STATE);
@@ -434,5 +434,5 @@
 /*static*/ DECLCALLBACK(int)
 RTCRestBinaryParameter::xmitHttpCallback(RTHTTP hHttp, void *pvBuf, size_t cbBuf,
-                                         uint64_t offContent, size_t *pcbActual, void *pvUser)
+                                         uint64_t offContent, size_t *pcbActual, void *pvUser) RT_NOEXCEPT
 {
     RTCRestBinaryParameter *pThis = (RTCRestBinaryParameter *)pvUser;
@@ -462,5 +462,5 @@
 
 
-void RTCRestBinaryParameter::xmitComplete(RTHTTP a_hHttp) const
+void RTCRestBinaryParameter::xmitComplete(RTHTTP a_hHttp) const RT_NOEXCEPT
 {
     /* Unset the callback. */
@@ -477,5 +477,5 @@
  * Default constructor.
  */
-RTCRestBinaryResponse::RTCRestBinaryResponse()
+RTCRestBinaryResponse::RTCRestBinaryResponse() RT_NOEXCEPT
     : RTCRestBinary()
     , m_cbContentLength(UINT64_MAX)
@@ -488,5 +488,5 @@
 
 
-int RTCRestBinaryResponse::assignCopy(RTCRestBinaryResponse const &a_rThat)
+int RTCRestBinaryResponse::assignCopy(RTCRestBinaryResponse const &a_rThat) RT_NOEXCEPT
 {
     AssertReturn(a_rThat.m_pfnConsumer, VERR_INVALID_STATE);
@@ -499,5 +499,5 @@
 
 
-int RTCRestBinaryResponse::assignCopy(RTCRestBinary const &a_rThat)
+int RTCRestBinaryResponse::assignCopy(RTCRestBinary const &a_rThat) RT_NOEXCEPT
 {
     m_cbContentLength = UINT64_MAX;
@@ -509,5 +509,5 @@
 
 
-int RTCRestBinaryResponse::assignCopy(void const *a_pvData, size_t a_cbData)
+int RTCRestBinaryResponse::assignCopy(void const *a_pvData, size_t a_cbData) RT_NOEXCEPT
 {
     RT_NOREF(a_pvData, a_cbData);
@@ -516,5 +516,5 @@
 
 
-int RTCRestBinaryResponse::assignReadOnly(void const *a_pvData, size_t a_cbData)
+int RTCRestBinaryResponse::assignReadOnly(void const *a_pvData, size_t a_cbData) RT_NOEXCEPT
 {
     RT_NOREF(a_pvData, a_cbData);
@@ -523,5 +523,5 @@
 
 
-int RTCRestBinaryResponse::assignWriteable(void *a_pvBuf, size_t a_cbBuf)
+int RTCRestBinaryResponse::assignWriteable(void *a_pvBuf, size_t a_cbBuf) RT_NOEXCEPT
 {
     m_cbContentLength = UINT64_MAX;
@@ -534,5 +534,5 @@
 
 
-RTCRestObjectBase *RTCRestBinaryResponse::baseClone() const
+RTCRestObjectBase *RTCRestBinaryResponse::baseClone() const RT_NOEXCEPT
 {
     RTCRestBinaryResponse *pClone = new (std::nothrow) RTCRestBinaryResponse();
@@ -548,5 +548,5 @@
 
 
-int RTCRestBinaryResponse::resetToDefault()
+int RTCRestBinaryResponse::resetToDefault() RT_NOEXCEPT
 {
     m_cbContentLength = UINT64_MAX;
@@ -559,5 +559,5 @@
 
 
-const char *RTCRestBinaryResponse::typeName(void) const
+const char *RTCRestBinaryResponse::typeName(void) const RT_NOEXCEPT
 {
     return "RTCRestBinaryResponse";
@@ -565,5 +565,5 @@
 
 
-/*static*/ DECLCALLBACK(RTCRestObjectBase *) RTCRestBinaryResponse::createInstance(void)
+/*static*/ DECLCALLBACK(RTCRestObjectBase *) RTCRestBinaryResponse::createInstance(void) RT_NOEXCEPT
 {
     return new (std::nothrow) RTCRestBinaryResponse();
@@ -571,5 +571,5 @@
 
 
-void RTCRestBinaryResponse::setMaxDownloadSize(size_t a_cbMaxDownload)
+void RTCRestBinaryResponse::setMaxDownloadSize(size_t a_cbMaxDownload) RT_NOEXCEPT
 {
     if (a_cbMaxDownload == 0)
@@ -580,5 +580,5 @@
 
 
-void RTCRestBinaryResponse::setConsumerCallback(PFNCONSUMER a_pfnConsumer, void *a_pvCallbackData /*= NULL*/)
+void RTCRestBinaryResponse::setConsumerCallback(PFNCONSUMER a_pfnConsumer, void *a_pvCallbackData /*= NULL*/) RT_NOEXCEPT
 {
     freeData();
@@ -591,5 +591,5 @@
 
 
-int RTCRestBinaryResponse::receivePrepare(RTHTTP a_hHttp, uint32_t a_fCallbackFlags)
+int RTCRestBinaryResponse::receivePrepare(RTHTTP a_hHttp, uint32_t a_fCallbackFlags) RT_NOEXCEPT
 {
     AssertReturn(!m_fReadOnly, VERR_INVALID_STATE);
@@ -606,5 +606,5 @@
 /*static*/ DECLCALLBACK(int)
 RTCRestBinaryResponse::receiveHttpCallback(RTHTTP hHttp, void const *pvBuf, size_t cbBuf, uint32_t uHttpStatus,
-                                           uint64_t offContent, uint64_t cbContent, void *pvUser)
+                                           uint64_t offContent, uint64_t cbContent, void *pvUser) RT_NOEXCEPT
 {
     RTCRestBinaryResponse *pThis = (RTCRestBinaryResponse *)pvUser;
@@ -687,5 +687,5 @@
 
 
-void RTCRestBinaryResponse::receiveComplete(RTHTTP a_hHttp)
+void RTCRestBinaryResponse::receiveComplete(RTHTTP a_hHttp) RT_NOEXCEPT
 {
     /* Unset the callback. */
Index: /trunk/src/VBox/Runtime/common/rest/rest-primary-object-types.cpp
===================================================================
--- /trunk/src/VBox/Runtime/common/rest/rest-primary-object-types.cpp	(revision 74424)
+++ /trunk/src/VBox/Runtime/common/rest/rest-primary-object-types.cpp	(revision 74425)
@@ -48,5 +48,5 @@
 
 /** Default constructor. */
-RTCRestObjectBase::RTCRestObjectBase()
+RTCRestObjectBase::RTCRestObjectBase() RT_NOEXCEPT
     : m_fNullIndicator(false)
 {
@@ -55,5 +55,5 @@
 
 /** Copy constructor. */
-RTCRestObjectBase::RTCRestObjectBase(RTCRestObjectBase const &a_rThat)
+RTCRestObjectBase::RTCRestObjectBase(RTCRestObjectBase const &a_rThat) RT_NOEXCEPT
     : m_fNullIndicator(a_rThat.m_fNullIndicator)
 {
@@ -68,5 +68,5 @@
 
 
-int RTCRestObjectBase::setNull()
+int RTCRestObjectBase::setNull() RT_NOEXCEPT
 {
     int rc = resetToDefault();
@@ -76,11 +76,11 @@
 
 
-void RTCRestObjectBase::setNotNull()
-{
-    m_fNullIndicator = false;
-}
-
-
-int RTCRestObjectBase::toString(RTCString *a_pDst, uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) const
+void RTCRestObjectBase::setNotNull() RT_NOEXCEPT
+{
+    m_fNullIndicator = false;
+}
+
+
+int RTCRestObjectBase::toString(RTCString *a_pDst, uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) const RT_NOEXCEPT
 {
     /*
@@ -102,5 +102,5 @@
 
 int RTCRestObjectBase::fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo /*= NULL*/,
-                                  uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/)
+                                  uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) RT_NOEXCEPT
 {
     RT_NOREF(a_fFlags);
@@ -126,5 +126,5 @@
 
 /** Factory method. */
-/*static*/ DECLCALLBACK(RTCRestObjectBase *) RTCRestBool::createInstance(void)
+/*static*/ DECLCALLBACK(RTCRestObjectBase *) RTCRestBool::createInstance(void) RT_NOEXCEPT
 {
     return new (std::nothrow) RTCRestBool();
@@ -136,5 +136,5 @@
  */
 /*static*/ DECLCALLBACK(int)
-RTCRestBool::deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance)
+RTCRestBool::deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT
 {
     RTCRestObjectBase *pObj = createInstance();
@@ -147,5 +147,5 @@
 
 /** Default constructor. */
-RTCRestBool::RTCRestBool()
+RTCRestBool::RTCRestBool() RT_NOEXCEPT
     : RTCRestObjectBase()
     , m_fValue(false)
@@ -155,5 +155,5 @@
 
 /** Copy constructor. */
-RTCRestBool::RTCRestBool(RTCRestBool const &a_rThat)
+RTCRestBool::RTCRestBool(RTCRestBool const &a_rThat) RT_NOEXCEPT
     : RTCRestObjectBase(a_rThat)
     , m_fValue(a_rThat.m_fValue)
@@ -163,5 +163,5 @@
 
 /** From value constructor. */
-RTCRestBool::RTCRestBool(bool fValue)
+RTCRestBool::RTCRestBool(bool fValue) RT_NOEXCEPT
     : m_fValue(fValue)
 {
@@ -177,5 +177,5 @@
 
 /** Copy assignment operator. */
-RTCRestBool &RTCRestBool::operator=(RTCRestBool const &a_rThat)
+RTCRestBool &RTCRestBool::operator=(RTCRestBool const &a_rThat) RT_NOEXCEPT
 {
     m_fNullIndicator = a_rThat.m_fNullIndicator;
@@ -185,5 +185,5 @@
 
 
-int RTCRestBool::assignCopy(RTCRestBool const &a_rThat)
+int RTCRestBool::assignCopy(RTCRestBool const &a_rThat) RT_NOEXCEPT
 {
     m_fNullIndicator = a_rThat.m_fNullIndicator;
@@ -193,5 +193,5 @@
 
 
-void RTCRestBool::assignValue(bool a_fValue)
+void RTCRestBool::assignValue(bool a_fValue) RT_NOEXCEPT
 {
     m_fValue = a_fValue;
@@ -200,5 +200,5 @@
 
 
-RTCRestObjectBase *RTCRestBool::baseClone() const
+RTCRestObjectBase *RTCRestBool::baseClone() const RT_NOEXCEPT
 {
     return new (std::nothrow) RTCRestBool(*this);
@@ -206,5 +206,5 @@
 
 
-int RTCRestBool::resetToDefault()
+int RTCRestBool::resetToDefault() RT_NOEXCEPT
 {
     m_fValue = false;
@@ -214,5 +214,5 @@
 
 
-RTCRestOutputBase &RTCRestBool::serializeAsJson(RTCRestOutputBase &a_rDst) const
+RTCRestOutputBase &RTCRestBool::serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT
 {
     a_rDst.printf(!m_fNullIndicator ? m_fValue ? "true" : "false" : "null");
@@ -221,5 +221,5 @@
 
 
-int RTCRestBool::deserializeFromJson(RTCRestJsonCursor const &a_rCursor)
+int RTCRestBool::deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT
 {
     m_fValue = false;
@@ -248,5 +248,5 @@
 
 
-int RTCRestBool::toString(RTCString *a_pDst, uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) const
+int RTCRestBool::toString(RTCString *a_pDst, uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) const RT_NOEXCEPT
 {
     if (!(a_fFlags & kToString_Append))
@@ -272,5 +272,5 @@
 
 int RTCRestBool::fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo /*= NULL*/,
-                            uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/)
+                            uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) RT_NOEXCEPT
 {
     RT_NOREF(a_fFlags);
@@ -298,5 +298,5 @@
 
 
-RTCRestObjectBase::kTypeClass RTCRestBool::typeClass() const
+RTCRestObjectBase::kTypeClass RTCRestBool::typeClass() const RT_NOEXCEPT
 {
     return kTypeClass_Bool;
@@ -304,5 +304,5 @@
 
 
-const char *RTCRestBool::typeName() const
+const char *RTCRestBool::typeName() const RT_NOEXCEPT
 {
     return "bool";
@@ -316,5 +316,5 @@
 
 /** Factory method. */
-/*static*/ DECLCALLBACK(RTCRestObjectBase *) RTCRestInt64::createInstance(void)
+/*static*/ DECLCALLBACK(RTCRestObjectBase *) RTCRestInt64::createInstance(void) RT_NOEXCEPT
 {
     return new (std::nothrow) RTCRestInt64();
@@ -326,5 +326,5 @@
  */
 /*static*/ DECLCALLBACK(int)
-RTCRestInt64::deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance)
+RTCRestInt64::deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT
 {
     RTCRestObjectBase *pObj = createInstance();
@@ -337,5 +337,5 @@
 
 /** Default constructor. */
-RTCRestInt64::RTCRestInt64()
+RTCRestInt64::RTCRestInt64() RT_NOEXCEPT
     : RTCRestObjectBase()
     , m_iValue(0)
@@ -345,5 +345,5 @@
 
 /** Copy constructor. */
-RTCRestInt64::RTCRestInt64(RTCRestInt64 const &a_rThat)
+RTCRestInt64::RTCRestInt64(RTCRestInt64 const &a_rThat) RT_NOEXCEPT
     : RTCRestObjectBase(a_rThat)
     , m_iValue(a_rThat.m_iValue)
@@ -353,5 +353,5 @@
 
 /** From value constructor. */
-RTCRestInt64::RTCRestInt64(int64_t iValue)
+RTCRestInt64::RTCRestInt64(int64_t iValue) RT_NOEXCEPT
     : RTCRestObjectBase()
     , m_iValue(iValue)
@@ -368,5 +368,5 @@
 
 /** Copy assignment operator. */
-RTCRestInt64 &RTCRestInt64::operator=(RTCRestInt64 const &a_rThat)
+RTCRestInt64 &RTCRestInt64::operator=(RTCRestInt64 const &a_rThat) RT_NOEXCEPT
 {
     m_fNullIndicator = a_rThat.m_fNullIndicator;
@@ -376,5 +376,5 @@
 
 
-int RTCRestInt64::assignCopy(RTCRestInt64 const &a_rThat)
+int RTCRestInt64::assignCopy(RTCRestInt64 const &a_rThat) RT_NOEXCEPT
 {
     m_fNullIndicator = a_rThat.m_fNullIndicator;
@@ -384,5 +384,5 @@
 
 
-void RTCRestInt64::assignValue(int64_t a_iValue)
+void RTCRestInt64::assignValue(int64_t a_iValue) RT_NOEXCEPT
 {
     m_iValue = a_iValue;
@@ -391,5 +391,5 @@
 
 
-RTCRestObjectBase *RTCRestInt64::baseClone() const
+RTCRestObjectBase *RTCRestInt64::baseClone() const RT_NOEXCEPT
 {
     return new (std::nothrow) RTCRestInt64(*this);
@@ -397,5 +397,5 @@
 
 
-int RTCRestInt64::resetToDefault()
+int RTCRestInt64::resetToDefault() RT_NOEXCEPT
 {
     m_iValue = 0;
@@ -405,5 +405,5 @@
 
 
-RTCRestOutputBase &RTCRestInt64::serializeAsJson(RTCRestOutputBase &a_rDst) const
+RTCRestOutputBase &RTCRestInt64::serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT
 {
     if (!m_fNullIndicator)
@@ -415,5 +415,5 @@
 
 
-int RTCRestInt64::deserializeFromJson(RTCRestJsonCursor const &a_rCursor)
+int RTCRestInt64::deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT
 {
     m_iValue = 0;
@@ -444,5 +444,5 @@
 
 
-int RTCRestInt64::toString(RTCString *a_pDst, uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) const
+int RTCRestInt64::toString(RTCString *a_pDst, uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) const RT_NOEXCEPT
 {
     if (!(a_fFlags & kToString_Append))
@@ -459,5 +459,5 @@
 
 int RTCRestInt64::fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo /*= NULL*/,
-                             uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/)
+                             uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) RT_NOEXCEPT
 {
     RT_NOREF(a_fFlags);
@@ -482,5 +482,5 @@
 
 
-RTCRestObjectBase::kTypeClass RTCRestInt64::typeClass() const
+RTCRestObjectBase::kTypeClass RTCRestInt64::typeClass() const RT_NOEXCEPT
 {
     return kTypeClass_Int64;
@@ -488,5 +488,5 @@
 
 
-const char *RTCRestInt64::typeName() const
+const char *RTCRestInt64::typeName() const RT_NOEXCEPT
 {
     return "int64_t";
@@ -500,5 +500,5 @@
 
 /** Factory method. */
-/*static*/ DECLCALLBACK(RTCRestObjectBase *) RTCRestInt32::createInstance(void)
+/*static*/ DECLCALLBACK(RTCRestObjectBase *) RTCRestInt32::createInstance(void) RT_NOEXCEPT
 {
     return new (std::nothrow) RTCRestInt32();
@@ -510,5 +510,5 @@
  */
 /*static*/ DECLCALLBACK(int)
-RTCRestInt32::deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance)
+RTCRestInt32::deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT
 {
     RTCRestObjectBase *pObj = createInstance();
@@ -521,5 +521,5 @@
 
 /** Default constructor. */
-RTCRestInt32::RTCRestInt32()
+RTCRestInt32::RTCRestInt32() RT_NOEXCEPT
     : RTCRestObjectBase()
     , m_iValue(0)
@@ -529,5 +529,5 @@
 
 /** Copy constructor. */
-RTCRestInt32::RTCRestInt32(RTCRestInt32 const &a_rThat)
+RTCRestInt32::RTCRestInt32(RTCRestInt32 const &a_rThat) RT_NOEXCEPT
     : RTCRestObjectBase(a_rThat)
     , m_iValue(a_rThat.m_iValue)
@@ -537,5 +537,5 @@
 
 /** From value constructor. */
-RTCRestInt32::RTCRestInt32(int32_t iValue)
+RTCRestInt32::RTCRestInt32(int32_t iValue) RT_NOEXCEPT
     : RTCRestObjectBase()
     , m_iValue(iValue)
@@ -552,5 +552,5 @@
 
 /** Copy assignment operator. */
-RTCRestInt32 &RTCRestInt32::operator=(RTCRestInt32 const &a_rThat)
+RTCRestInt32 &RTCRestInt32::operator=(RTCRestInt32 const &a_rThat) RT_NOEXCEPT
 {
     m_fNullIndicator = a_rThat.m_fNullIndicator;
@@ -560,5 +560,5 @@
 
 
-int RTCRestInt32::assignCopy(RTCRestInt32 const &a_rThat)
+int RTCRestInt32::assignCopy(RTCRestInt32 const &a_rThat) RT_NOEXCEPT
 {
     m_fNullIndicator = a_rThat.m_fNullIndicator;
@@ -568,5 +568,5 @@
 
 
-RTCRestObjectBase *RTCRestInt32::baseClone() const
+RTCRestObjectBase *RTCRestInt32::baseClone() const RT_NOEXCEPT
 {
     return new (std::nothrow) RTCRestInt32(*this);
@@ -574,5 +574,5 @@
 
 
-int RTCRestInt32::resetToDefault()
+int RTCRestInt32::resetToDefault() RT_NOEXCEPT
 {
     m_iValue = 0;
@@ -582,5 +582,5 @@
 
 
-void RTCRestInt32::assignValue(int32_t a_iValue)
+void RTCRestInt32::assignValue(int32_t a_iValue) RT_NOEXCEPT
 {
     m_iValue = a_iValue;
@@ -589,5 +589,5 @@
 
 
-RTCRestOutputBase &RTCRestInt32::serializeAsJson(RTCRestOutputBase &a_rDst) const
+RTCRestOutputBase &RTCRestInt32::serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT
 {
     if (!m_fNullIndicator)
@@ -599,5 +599,5 @@
 
 
-int RTCRestInt32::deserializeFromJson(RTCRestJsonCursor const &a_rCursor)
+int RTCRestInt32::deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT
 {
     m_iValue = 0;
@@ -634,5 +634,5 @@
 
 
-int RTCRestInt32::toString(RTCString *a_pDst, uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) const
+int RTCRestInt32::toString(RTCString *a_pDst, uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) const RT_NOEXCEPT
 {
     if (!(a_fFlags & kToString_Append))
@@ -649,5 +649,5 @@
 
 int RTCRestInt32::fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo /*= NULL*/,
-                             uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/)
+                             uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) RT_NOEXCEPT
 {
     RT_NOREF(a_fFlags);
@@ -672,5 +672,5 @@
 
 
-RTCRestObjectBase::kTypeClass RTCRestInt32::typeClass() const
+RTCRestObjectBase::kTypeClass RTCRestInt32::typeClass() const RT_NOEXCEPT
 {
     return kTypeClass_Int32;
@@ -678,5 +678,5 @@
 
 
-const char *RTCRestInt32::typeName() const
+const char *RTCRestInt32::typeName() const RT_NOEXCEPT
 {
     return "int32_t";
@@ -690,5 +690,5 @@
 
 /** Factory method. */
-/*static*/ DECLCALLBACK(RTCRestObjectBase *) RTCRestInt16::createInstance(void)
+/*static*/ DECLCALLBACK(RTCRestObjectBase *) RTCRestInt16::createInstance(void) RT_NOEXCEPT
 {
     return new (std::nothrow) RTCRestInt16();
@@ -700,5 +700,5 @@
  */
 /*static*/ DECLCALLBACK(int)
-RTCRestInt16::deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance)
+RTCRestInt16::deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT
 {
     RTCRestObjectBase *pObj = createInstance();
@@ -711,5 +711,5 @@
 
 /** Default constructor. */
-RTCRestInt16::RTCRestInt16()
+RTCRestInt16::RTCRestInt16() RT_NOEXCEPT
     : RTCRestObjectBase()
     , m_iValue(0)
@@ -719,5 +719,5 @@
 
 /** Copy constructor. */
-RTCRestInt16::RTCRestInt16(RTCRestInt16 const &a_rThat)
+RTCRestInt16::RTCRestInt16(RTCRestInt16 const &a_rThat) RT_NOEXCEPT
     : RTCRestObjectBase(a_rThat)
     , m_iValue(a_rThat.m_iValue)
@@ -727,5 +727,5 @@
 
 /** From value constructor. */
-RTCRestInt16::RTCRestInt16(int16_t iValue)
+RTCRestInt16::RTCRestInt16(int16_t iValue) RT_NOEXCEPT
     : RTCRestObjectBase()
     , m_iValue(iValue)
@@ -742,5 +742,5 @@
 
 /** Copy assignment operator. */
-RTCRestInt16 &RTCRestInt16::operator=(RTCRestInt16 const &a_rThat)
+RTCRestInt16 &RTCRestInt16::operator=(RTCRestInt16 const &a_rThat) RT_NOEXCEPT
 {
     m_fNullIndicator = a_rThat.m_fNullIndicator;
@@ -750,5 +750,5 @@
 
 
-int RTCRestInt16::assignCopy(RTCRestInt16 const &a_rThat)
+int RTCRestInt16::assignCopy(RTCRestInt16 const &a_rThat) RT_NOEXCEPT
 {
     m_fNullIndicator = a_rThat.m_fNullIndicator;
@@ -758,5 +758,5 @@
 
 
-void RTCRestInt16::assignValue(int16_t a_iValue)
+void RTCRestInt16::assignValue(int16_t a_iValue) RT_NOEXCEPT
 {
     m_iValue = a_iValue;
@@ -765,5 +765,5 @@
 
 
-RTCRestObjectBase *RTCRestInt16::baseClone() const
+RTCRestObjectBase *RTCRestInt16::baseClone() const RT_NOEXCEPT
 {
     return new (std::nothrow) RTCRestInt16(*this);
@@ -771,5 +771,5 @@
 
 
-int RTCRestInt16::resetToDefault()
+int RTCRestInt16::resetToDefault() RT_NOEXCEPT
 {
     m_iValue = 0;
@@ -779,5 +779,5 @@
 
 
-RTCRestOutputBase &RTCRestInt16::serializeAsJson(RTCRestOutputBase &a_rDst) const
+RTCRestOutputBase &RTCRestInt16::serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT
 {
     if (!m_fNullIndicator)
@@ -789,5 +789,5 @@
 
 
-int RTCRestInt16::deserializeFromJson(RTCRestJsonCursor const &a_rCursor)
+int RTCRestInt16::deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT
 {
     m_iValue = 0;
@@ -824,5 +824,5 @@
 
 
-int RTCRestInt16::toString(RTCString *a_pDst, uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) const
+int RTCRestInt16::toString(RTCString *a_pDst, uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) const RT_NOEXCEPT
 {
     if (!(a_fFlags & kToString_Append))
@@ -839,5 +839,5 @@
 
 int RTCRestInt16::fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo /*= NULL*/,
-                             uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/)
+                             uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) RT_NOEXCEPT
 {
     RT_NOREF(a_fFlags);
@@ -862,5 +862,5 @@
 
 
-RTCRestObjectBase::kTypeClass RTCRestInt16::typeClass() const
+RTCRestObjectBase::kTypeClass RTCRestInt16::typeClass() const RT_NOEXCEPT
 {
     return kTypeClass_Int16;
@@ -868,5 +868,5 @@
 
 
-const char *RTCRestInt16::typeName() const
+const char *RTCRestInt16::typeName() const RT_NOEXCEPT
 {
     return "int16_t";
@@ -880,5 +880,5 @@
 
 /** Factory method. */
-/*static*/ DECLCALLBACK(RTCRestObjectBase *) RTCRestDouble::createInstance(void)
+/*static*/ DECLCALLBACK(RTCRestObjectBase *) RTCRestDouble::createInstance(void) RT_NOEXCEPT
 {
     return new (std::nothrow) RTCRestDouble();
@@ -890,5 +890,5 @@
  */
 /*static*/ DECLCALLBACK(int)
-RTCRestDouble::deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance)
+RTCRestDouble::deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT
 {
     RTCRestObjectBase *pObj = createInstance();
@@ -901,5 +901,5 @@
 
 /** Default constructor. */
-RTCRestDouble::RTCRestDouble()
+RTCRestDouble::RTCRestDouble() RT_NOEXCEPT
     : RTCRestObjectBase()
     , m_rdValue(0.0)
@@ -909,5 +909,5 @@
 
 /** Copy constructor. */
-RTCRestDouble::RTCRestDouble(RTCRestDouble const &a_rThat)
+RTCRestDouble::RTCRestDouble(RTCRestDouble const &a_rThat) RT_NOEXCEPT
     : RTCRestObjectBase(a_rThat)
     , m_rdValue(a_rThat.m_rdValue)
@@ -917,5 +917,5 @@
 
 /** From value constructor. */
-RTCRestDouble::RTCRestDouble(double rdValue)
+RTCRestDouble::RTCRestDouble(double rdValue) RT_NOEXCEPT
     : RTCRestObjectBase()
     , m_rdValue(rdValue)
@@ -932,5 +932,5 @@
 
 /** Copy assignment operator. */
-RTCRestDouble &RTCRestDouble::operator=(RTCRestDouble const &a_rThat)
+RTCRestDouble &RTCRestDouble::operator=(RTCRestDouble const &a_rThat) RT_NOEXCEPT
 {
     m_fNullIndicator = a_rThat.m_fNullIndicator;
@@ -940,5 +940,5 @@
 
 
-int RTCRestDouble::assignCopy(RTCRestDouble const &a_rThat)
+int RTCRestDouble::assignCopy(RTCRestDouble const &a_rThat) RT_NOEXCEPT
 {
     m_fNullIndicator = a_rThat.m_fNullIndicator;
@@ -948,5 +948,5 @@
 
 
-void RTCRestDouble::assignValue(double a_rdValue)
+void RTCRestDouble::assignValue(double a_rdValue) RT_NOEXCEPT
 {
     m_rdValue = a_rdValue;
@@ -955,5 +955,5 @@
 
 
-RTCRestObjectBase *RTCRestDouble::baseClone() const
+RTCRestObjectBase *RTCRestDouble::baseClone() const RT_NOEXCEPT
 {
     return new (std::nothrow) RTCRestDouble(*this);
@@ -961,5 +961,5 @@
 
 
-int RTCRestDouble::resetToDefault()
+int RTCRestDouble::resetToDefault() RT_NOEXCEPT
 {
     m_rdValue = 0.0;
@@ -969,5 +969,5 @@
 
 
-RTCRestOutputBase &RTCRestDouble::serializeAsJson(RTCRestOutputBase &a_rDst) const
+RTCRestOutputBase &RTCRestDouble::serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT
 {
     if (!m_fNullIndicator)
@@ -995,5 +995,5 @@
 
 
-int RTCRestDouble::deserializeFromJson(RTCRestJsonCursor const &a_rCursor)
+int RTCRestDouble::deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT
 {
     m_rdValue = 0.0;
@@ -1038,5 +1038,5 @@
 
 
-int RTCRestDouble::toString(RTCString *a_pDst, uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) const
+int RTCRestDouble::toString(RTCString *a_pDst, uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) const RT_NOEXCEPT
 {
     if (!m_fNullIndicator)
@@ -1067,5 +1067,5 @@
 
 int RTCRestDouble::fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo /*= NULL*/,
-                              uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/)
+                              uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) RT_NOEXCEPT
 {
     RT_NOREF(a_fFlags);
@@ -1106,5 +1106,5 @@
 
 
-RTCRestObjectBase::kTypeClass RTCRestDouble::typeClass() const
+RTCRestObjectBase::kTypeClass RTCRestDouble::typeClass() const RT_NOEXCEPT
 {
     return kTypeClass_Double;
@@ -1112,5 +1112,5 @@
 
 
-const char *RTCRestDouble::typeName() const
+const char *RTCRestDouble::typeName() const RT_NOEXCEPT
 {
     return "double";
@@ -1124,5 +1124,5 @@
 
 /** Factory method. */
-/*static*/ DECLCALLBACK(RTCRestObjectBase *) RTCRestString::createInstance(void)
+/*static*/ DECLCALLBACK(RTCRestObjectBase *) RTCRestString::createInstance(void) RT_NOEXCEPT
 {
     return new (std::nothrow) RTCRestString();
@@ -1134,5 +1134,5 @@
  */
 /*static*/ DECLCALLBACK(int)
-RTCRestString::deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance)
+RTCRestString::deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT
 {
     RTCRestObjectBase *pObj = createInstance();
@@ -1145,5 +1145,5 @@
 
 /** Default constructor. */
-RTCRestString::RTCRestString()
+RTCRestString::RTCRestString() RT_NOEXCEPT
     : RTCRestObjectBase()
     , RTCString()
@@ -1182,5 +1182,5 @@
 
 
-int RTCRestString::assignCopy(RTCRestString const &a_rThat)
+int RTCRestString::assignCopy(RTCRestString const &a_rThat) RT_NOEXCEPT
 {
     int rc = assignNoThrow(a_rThat);
@@ -1190,5 +1190,5 @@
 
 
-int RTCRestString::assignCopy(RTCString const &a_rThat)
+int RTCRestString::assignCopy(RTCString const &a_rThat) RT_NOEXCEPT
 {
     m_fNullIndicator = false;
@@ -1197,5 +1197,5 @@
 
 
-int RTCRestString::assignCopy(const char *a_pszThat)
+int RTCRestString::assignCopy(const char *a_pszThat) RT_NOEXCEPT
 {
     m_fNullIndicator = false;
@@ -1204,5 +1204,5 @@
 
 
-int RTCRestString::setNull()
+int RTCRestString::setNull() RT_NOEXCEPT
 {
     RTCString::setNull();
@@ -1212,5 +1212,5 @@
 
 
-RTCRestObjectBase *RTCRestString::baseClone() const
+RTCRestObjectBase *RTCRestString::baseClone() const RT_NOEXCEPT
 {
     RTCRestString *pClone = new (std::nothrow) RTCRestString();
@@ -1226,5 +1226,5 @@
 
 
-int RTCRestString::resetToDefault()
+int RTCRestString::resetToDefault() RT_NOEXCEPT
 {
     RTCString::setNull();
@@ -1234,5 +1234,5 @@
 
 
-RTCRestOutputBase &RTCRestString::serializeAsJson(RTCRestOutputBase &a_rDst) const
+RTCRestOutputBase &RTCRestString::serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT
 {
     if (!m_fNullIndicator)
@@ -1244,5 +1244,5 @@
 
 
-int RTCRestString::deserializeFromJson(RTCRestJsonCursor const &a_rCursor)
+int RTCRestString::deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT
 {
     m_fNullIndicator = false;
@@ -1272,5 +1272,5 @@
 
 
-int RTCRestString::toString(RTCString *a_pDst, uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) const
+int RTCRestString::toString(RTCString *a_pDst, uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) const RT_NOEXCEPT
 {
     /* Note! m_fNullIndicator == true: empty string. */
@@ -1282,5 +1282,5 @@
 
 int RTCRestString::fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo /*= NULL*/,
-                              uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/)
+                              uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) RT_NOEXCEPT
 {
     RT_NOREF(a_fFlags); RT_NOREF(a_pszName); RT_NOREF(a_pErrInfo);
@@ -1292,5 +1292,5 @@
 
 
-RTCRestObjectBase::kTypeClass RTCRestString::typeClass() const
+RTCRestObjectBase::kTypeClass RTCRestString::typeClass() const RT_NOEXCEPT
 {
     return kTypeClass_String;
@@ -1298,5 +1298,5 @@
 
 
-const char *RTCRestString::typeName() const
+const char *RTCRestString::typeName() const RT_NOEXCEPT
 {
     return "RTCString";
@@ -1444,5 +1444,5 @@
 *   RTCRestDate implementation                                                                                                   *
 *********************************************************************************************************************************/
-/*static*/ DECLCALLBACK(RTCRestObjectBase *) RTCRestDate::createInstance(void)
+/*static*/ DECLCALLBACK(RTCRestObjectBase *) RTCRestDate::createInstance(void) RT_NOEXCEPT
 {
     return new (std::nothrow) RTCRestDate();
@@ -1454,5 +1454,5 @@
  */
 /*static*/ DECLCALLBACK(int)
-RTCRestDate::deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance)
+RTCRestDate::deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT
 {
     RTCRestObjectBase *pObj = createInstance();
@@ -1464,5 +1464,5 @@
 
 
-RTCRestDate::RTCRestDate()
+RTCRestDate::RTCRestDate() RT_NOEXCEPT
     : RTCRestObjectBase()
     , m_fTimeSpecOkay(false)
@@ -1507,5 +1507,5 @@
 
 
-int RTCRestDate::assignCopy(RTCRestDate const &a_rThat)
+int RTCRestDate::assignCopy(RTCRestDate const &a_rThat) RT_NOEXCEPT
 {
     m_fNullIndicator = a_rThat.m_fNullIndicator;
@@ -1518,5 +1518,5 @@
 
 
-RTCRestObjectBase *RTCRestDate::baseClone() const
+RTCRestObjectBase *RTCRestDate::baseClone() const RT_NOEXCEPT
 {
     RTCRestDate *pClone = new (std::nothrow) RTCRestDate();
@@ -1532,5 +1532,5 @@
 
 
-int RTCRestDate::resetToDefault()
+int RTCRestDate::resetToDefault() RT_NOEXCEPT
 {
     m_fNullIndicator = true;
@@ -1544,5 +1544,5 @@
 
 
-RTCRestOutputBase &RTCRestDate::serializeAsJson(RTCRestOutputBase &a_rDst) const
+RTCRestOutputBase &RTCRestDate::serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT
 {
     if (m_fNullIndicator)
@@ -1554,5 +1554,5 @@
 
 
-int RTCRestDate::deserializeFromJson(RTCRestJsonCursor const &a_rCursor)
+int RTCRestDate::deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT
 {
     setNull();
@@ -1586,5 +1586,5 @@
 
 
-int RTCRestDate::toString(RTCString *a_pDst, uint32_t a_fFlags /*= 0*/) const
+int RTCRestDate::toString(RTCString *a_pDst, uint32_t a_fFlags /*= 0*/) const RT_NOEXCEPT
 {
     if (m_fNullIndicator)
@@ -1601,5 +1601,5 @@
 
 int RTCRestDate::fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo /*= NULL*/,
-                            uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/)
+                            uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) RT_NOEXCEPT
 {
     setNull();
@@ -1626,5 +1626,5 @@
 
 
-RTCRestObjectBase::kTypeClass RTCRestDate::typeClass(void) const
+RTCRestObjectBase::kTypeClass RTCRestDate::typeClass(void) const RT_NOEXCEPT
 {
     return kTypeClass_Date;
@@ -1632,5 +1632,5 @@
 
 
-const char *RTCRestDate::typeName(void) const
+const char *RTCRestDate::typeName(void) const RT_NOEXCEPT
 {
     return "RTCRestDate";
@@ -1638,5 +1638,5 @@
 
 
-int RTCRestDate::assignValue(PCRTTIMESPEC a_pTimeSpec, kFormat a_enmFormat)
+int RTCRestDate::assignValue(PCRTTIMESPEC a_pTimeSpec, kFormat a_enmFormat) RT_NOEXCEPT
 {
     AssertPtrReturn(a_pTimeSpec, VERR_INVALID_PARAMETER);
@@ -1648,5 +1648,5 @@
 
 
-int RTCRestDate::assignValueRfc2822(PCRTTIMESPEC a_pTimeSpec)
+int RTCRestDate::assignValueRfc2822(PCRTTIMESPEC a_pTimeSpec) RT_NOEXCEPT
 {
     AssertPtrReturn(a_pTimeSpec, VERR_INVALID_PARAMETER);
@@ -1656,5 +1656,5 @@
 
 
-int RTCRestDate::assignValueRfc7131(PCRTTIMESPEC a_pTimeSpec)
+int RTCRestDate::assignValueRfc7131(PCRTTIMESPEC a_pTimeSpec) RT_NOEXCEPT
 {
     AssertPtrReturn(a_pTimeSpec, VERR_INVALID_PARAMETER);
@@ -1664,5 +1664,5 @@
 
 
-int RTCRestDate::assignValueRfc3339(PCRTTIMESPEC a_pTimeSpec)
+int RTCRestDate::assignValueRfc3339(PCRTTIMESPEC a_pTimeSpec) RT_NOEXCEPT
 {
     AssertPtrReturn(a_pTimeSpec, VERR_INVALID_PARAMETER);
@@ -1672,5 +1672,5 @@
 
 
-int RTCRestDate::assignNow(kFormat a_enmFormat)
+int RTCRestDate::assignNow(kFormat a_enmFormat) RT_NOEXCEPT
 {
     RTTIMESPEC Now;
@@ -1679,5 +1679,5 @@
 
 
-int RTCRestDate::assignNowRfc2822()
+int RTCRestDate::assignNowRfc2822() RT_NOEXCEPT
 {
     RTTIMESPEC Now;
@@ -1686,5 +1686,5 @@
 
 
-int RTCRestDate::assignNowRfc7131()
+int RTCRestDate::assignNowRfc7131() RT_NOEXCEPT
 {
     RTTIMESPEC Now;
@@ -1693,5 +1693,5 @@
 
 
-int RTCRestDate::assignNowRfc3339()
+int RTCRestDate::assignNowRfc3339() RT_NOEXCEPT
 {
     RTTIMESPEC Now;
@@ -1700,5 +1700,5 @@
 
 
-int RTCRestDate::setFormat(kFormat a_enmFormat)
+int RTCRestDate::setFormat(kFormat a_enmFormat) RT_NOEXCEPT
 {
     /*
@@ -1731,5 +1731,5 @@
 
 
-int RTCRestDate::explodeAndFormat(kFormat a_enmFormat)
+int RTCRestDate::explodeAndFormat(kFormat a_enmFormat) RT_NOEXCEPT
 {
     RTTimeExplode(&m_Exploded, &m_TimeSpec);
@@ -1746,5 +1746,5 @@
  * @param   a_enmFormat The format to use.
  */
-int RTCRestDate::format(kFormat a_enmFormat)
+int RTCRestDate::format(kFormat a_enmFormat) RT_NOEXCEPT
 {
     m_fNullIndicator = false;
@@ -1795,5 +1795,5 @@
  * @param   enmFormat   Specific format to try, kFormat_Invalid (default) to try guess it.
  */
-int RTCRestDate::decodeFormattedString(kFormat enmFormat /*= kFormat_Invalid*/)
+int RTCRestDate::decodeFormattedString(kFormat enmFormat /*= kFormat_Invalid*/) RT_NOEXCEPT
 {
     /*
@@ -1904,5 +1904,5 @@
 
 /** Default constructor. */
-RTCRestStringEnumBase::RTCRestStringEnumBase()
+RTCRestStringEnumBase::RTCRestStringEnumBase() RT_NOEXCEPT
     : RTCRestObjectBase()
     , m_iEnumValue(0 /*invalid*/)
@@ -1938,5 +1938,5 @@
 
 
-int RTCRestStringEnumBase::assignCopy(RTCRestStringEnumBase const &a_rThat)
+int RTCRestStringEnumBase::assignCopy(RTCRestStringEnumBase const &a_rThat) RT_NOEXCEPT
 {
     m_fNullIndicator = a_rThat.m_fNullIndicator;
@@ -1946,5 +1946,5 @@
 
 
-int RTCRestStringEnumBase::resetToDefault()
+int RTCRestStringEnumBase::resetToDefault() RT_NOEXCEPT
 {
     m_iEnumValue = 0; /*invalid*/
@@ -1954,5 +1954,5 @@
 
 
-RTCRestOutputBase &RTCRestStringEnumBase::serializeAsJson(RTCRestOutputBase &a_rDst) const
+RTCRestOutputBase &RTCRestStringEnumBase::serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT
 {
     if (!m_fNullIndicator)
@@ -1964,5 +1964,5 @@
 
 
-int RTCRestStringEnumBase::deserializeFromJson(RTCRestJsonCursor const &a_rCursor)
+int RTCRestStringEnumBase::deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT
 {
     m_fNullIndicator = false;
@@ -1992,5 +1992,5 @@
 
 
-int RTCRestStringEnumBase::toString(RTCString *a_pDst, uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) const
+int RTCRestStringEnumBase::toString(RTCString *a_pDst, uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) const RT_NOEXCEPT
 {
     if (!m_fNullIndicator)
@@ -2018,5 +2018,5 @@
 
 int RTCRestStringEnumBase::fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo /*= NULL*/,
-                                      uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/)
+                                      uint32_t a_fFlags /*= kCollectionFormat_Unspecified*/) RT_NOEXCEPT
 {
     int iEnumValue = stringToEnum(a_rValue);
@@ -2047,5 +2047,5 @@
 
 
-RTCRestObjectBase::kTypeClass RTCRestStringEnumBase::typeClass(void) const
+RTCRestObjectBase::kTypeClass RTCRestStringEnumBase::typeClass(void) const RT_NOEXCEPT
 {
     return kTypeClass_StringEnum;
@@ -2053,5 +2053,5 @@
 
 
-int RTCRestStringEnumBase::setByString(const char *a_pszValue, size_t a_cchValue /*= RTSTR_MAX*/)
+int RTCRestStringEnumBase::setByString(const char *a_pszValue, size_t a_cchValue /*= RTSTR_MAX*/) RT_NOEXCEPT
 {
     if (a_cchValue == RTSTR_MAX)
@@ -2074,5 +2074,5 @@
 
 
-int RTCRestStringEnumBase::setByString(RTCString const &a_rValue)
+int RTCRestStringEnumBase::setByString(RTCString const &a_rValue) RT_NOEXCEPT
 {
     return setByString(a_rValue.c_str(), a_rValue.length());
@@ -2080,5 +2080,5 @@
 
 
-const char *RTCRestStringEnumBase::getString() const
+const char *RTCRestStringEnumBase::getString() const RT_NOEXCEPT
 {
     /* We ASSUME a certain mapping table layout here.  */
@@ -2100,5 +2100,5 @@
 
 
-int RTCRestStringEnumBase::stringToEnum(const char *a_pszValue, size_t a_cchValue)
+int RTCRestStringEnumBase::stringToEnum(const char *a_pszValue, size_t a_cchValue) RT_NOEXCEPT
 {
     if (a_cchValue == RTSTR_MAX)
@@ -2115,5 +2115,5 @@
 
 
-int RTCRestStringEnumBase::stringToEnum(RTCString const &a_rStrValue)
+int RTCRestStringEnumBase::stringToEnum(RTCString const &a_rStrValue) RT_NOEXCEPT
 {
     return stringToEnum(a_rStrValue.c_str(), a_rStrValue.length());
@@ -2121,5 +2121,5 @@
 
 
-const char *RTCRestStringEnumBase::enumToString(int a_iEnumValue, size_t *a_pcchString)
+const char *RTCRestStringEnumBase::enumToString(int a_iEnumValue, size_t *a_pcchString) RT_NOEXCEPT
 {
     /* We ASSUME a certain mapping table layout here.  */
@@ -2147,5 +2147,5 @@
 
 
-bool RTCRestStringEnumBase::setWorker(int a_iEnumValue)
+bool RTCRestStringEnumBase::setWorker(int a_iEnumValue) RT_NOEXCEPT
 {
     /* We ASSUME a certain mapping table layout here.  */
@@ -2168,5 +2168,5 @@
 
 
-RTCRestObjectBase  *RTCRestStringEnumBase::cloneWorker(RTCRestStringEnumBase *a_pDst) const
+RTCRestObjectBase  *RTCRestStringEnumBase::cloneWorker(RTCRestStringEnumBase *a_pDst) const RT_NOEXCEPT
 {
     if (a_pDst)
@@ -2186,5 +2186,5 @@
 *********************************************************************************************************************************/
 
-RTCRestDataObject::RTCRestDataObject()
+RTCRestDataObject::RTCRestDataObject() RT_NOEXCEPT
     : RTCRestObjectBase()
     , m_fIsSet(0)
@@ -2198,5 +2198,5 @@
 
 
-RTCRestDataObject::RTCRestDataObject(RTCRestDataObject const &a_rThat)
+RTCRestDataObject::RTCRestDataObject(RTCRestDataObject const &a_rThat) RT_NOEXCEPT
     : RTCRestObjectBase(a_rThat)
     , m_fIsSet(a_rThat.m_fIsSet)
@@ -2205,5 +2205,5 @@
 
 
-RTCRestDataObject &RTCRestDataObject::operator=(RTCRestDataObject const &a_rThat)
+RTCRestDataObject &RTCRestDataObject::operator=(RTCRestDataObject const &a_rThat) RT_NOEXCEPT
 {
     m_fNullIndicator = a_rThat.m_fNullIndicator;
@@ -2213,5 +2213,5 @@
 
 
-int RTCRestDataObject::assignCopy(RTCRestDataObject const &a_rThat)
+int RTCRestDataObject::assignCopy(RTCRestDataObject const &a_rThat) RT_NOEXCEPT
 {
     m_fNullIndicator = a_rThat.m_fNullIndicator;
@@ -2221,5 +2221,5 @@
 
 
-int RTCRestDataObject::resetToDefault()
+int RTCRestDataObject::resetToDefault() RT_NOEXCEPT
 {
     m_fNullIndicator = false;
@@ -2229,5 +2229,5 @@
 
 
-RTCRestOutputBase &RTCRestDataObject::serializeMembersAsJson(RTCRestOutputBase &a_rDst) const
+RTCRestOutputBase &RTCRestDataObject::serializeMembersAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT
 {
     RT_NOREF(a_rDst);
@@ -2236,5 +2236,5 @@
 
 
-RTCRestOutputBase &RTCRestDataObject::serializeAsJson(RTCRestOutputBase &a_rDst) const
+RTCRestOutputBase &RTCRestDataObject::serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT
 {
     if (!m_fNullIndicator)
@@ -2250,5 +2250,5 @@
 
 
-int RTCRestDataObject::deserializeMemberFromJson(RTCRestJsonCursor const &a_rCursor, size_t a_cchName)
+int RTCRestDataObject::deserializeMemberFromJson(RTCRestJsonCursor const &a_rCursor, size_t a_cchName) RT_NOEXCEPT
 {
     RT_NOREF(a_rCursor, a_cchName);
@@ -2257,5 +2257,5 @@
 
 
-int RTCRestDataObject::deserializeFromJson(RTCRestJsonCursor const &a_rCursor)
+int RTCRestDataObject::deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT
 {
     /*
@@ -2332,5 +2332,5 @@
 
 
-RTCRestObjectBase::kTypeClass RTCRestDataObject::typeClass(void) const
+RTCRestObjectBase::kTypeClass RTCRestDataObject::typeClass(void) const RT_NOEXCEPT
 {
     return kTypeClass_DataObject;
@@ -2343,5 +2343,5 @@
 *********************************************************************************************************************************/
 
-RTCRestPolyDataObject::RTCRestPolyDataObject()
+RTCRestPolyDataObject::RTCRestPolyDataObject() RT_NOEXCEPT
     : RTCRestDataObject()
 {
@@ -2349,5 +2349,5 @@
 
 
-RTCRestPolyDataObject::RTCRestPolyDataObject(RTCRestPolyDataObject const &a_rThat)
+RTCRestPolyDataObject::RTCRestPolyDataObject(RTCRestPolyDataObject const &a_rThat) RT_NOEXCEPT
     : RTCRestDataObject(a_rThat)
 {
@@ -2360,5 +2360,5 @@
 
 
-int RTCRestPolyDataObject::resetToDefault()
+int RTCRestPolyDataObject::resetToDefault() RT_NOEXCEPT
 {
     return RTCRestDataObject::resetToDefault();
@@ -2366,5 +2366,5 @@
 
 
-bool RTCRestPolyDataObject::isChild() const
+bool RTCRestPolyDataObject::isChild() const RT_NOEXCEPT
 {
     return false;
@@ -2372,5 +2372,5 @@
 
 
-RTCRestPolyDataObject &RTCRestPolyDataObject::operator=(RTCRestPolyDataObject const &a_rThat)
+RTCRestPolyDataObject &RTCRestPolyDataObject::operator=(RTCRestPolyDataObject const &a_rThat) RT_NOEXCEPT
 {
     RTCRestDataObject::operator=(a_rThat);
Index: /trunk/src/VBox/Runtime/testcase/tstRTCRest-1.cpp
===================================================================
--- /trunk/src/VBox/Runtime/testcase/tstRTCRest-1.cpp	(revision 74424)
+++ /trunk/src/VBox/Runtime/testcase/tstRTCRest-1.cpp	(revision 74425)
@@ -1997,5 +1997,5 @@
     }
 
-    int resetToDefault() RT_OVERRIDE
+    int resetToDefault() RT_NOEXCEPT RT_OVERRIDE
     {
         m_strValue = "";
@@ -2004,5 +2004,5 @@
     }
 
-    int xmitPrepare(RTCString *a_pStrPath, RTCString *a_pStrQuery, RTHTTP a_hHttp, RTCString *a_pStrBody) const RT_OVERRIDE
+    int xmitPrepare(RTCString *a_pStrPath, RTCString *a_pStrQuery, RTHTTP a_hHttp, RTCString *a_pStrBody) const RT_NOEXCEPT RT_OVERRIDE
     {
         RT_NOREF(a_pStrPath, a_pStrQuery, a_hHttp, a_pStrBody);
@@ -2010,5 +2010,5 @@
     }
 
-    void xmitComplete(int a_rcStatus, RTHTTP a_hHttp) const RT_OVERRIDE
+    void xmitComplete(int a_rcStatus, RTHTTP a_hHttp) const RT_NOEXCEPT RT_OVERRIDE
     {
         RT_NOREF(a_rcStatus, a_hHttp);
@@ -2149,5 +2149,5 @@
 protected:
     virtual int consumeHeader(uint32_t a_uMatchWord, const char *a_pchField, size_t a_cchField,
-                              const char *a_pchValue, size_t a_cchValue) RT_OVERRIDE
+                              const char *a_pchValue, size_t a_cchValue) RT_NOEXCEPT RT_OVERRIDE
     {
         int rc = RTCRestClientResponseBase::consumeHeader(a_uMatchWord, a_pchField, a_cchField, a_pchValue, a_cchValue);
