瀏覽代碼

MAke noexcept compiler-specific.

kimkulling 7 年之前
父節點
當前提交
f75bf6d99c
共有 48 個文件被更改,包括 109 次插入99 次删除
  1. 4 4
      code/3DSHelper.h
  2. 1 1
      code/AMFImporter.hpp
  3. 7 7
      code/ASEParser.h
  4. 1 1
      code/BaseImporter.cpp
  5. 1 1
      code/BaseProcess.cpp
  6. 1 1
      code/BaseProcess.h
  7. 2 2
      code/Importer.h
  8. 2 2
      code/LWOAnimation.h
  9. 1 1
      code/LWOFileData.h
  10. 1 1
      code/LimitBoneWeightsProcess.h
  11. 2 2
      code/MD3Loader.h
  12. 1 1
      code/MD5Parser.h
  13. 1 1
      code/MDCFileData.h
  14. 6 6
      code/MDLFileData.h
  15. 1 1
      code/OptimizeMeshes.h
  16. 6 6
      code/PlyParser.h
  17. 4 4
      code/SMDLoader.h
  18. 2 2
      code/ScenePrivate.h
  19. 2 2
      code/TextureTransform.h
  20. 5 5
      code/XFileHelper.h
  21. 1 1
      contrib/irrXML/irrArray.h
  22. 1 1
      include/assimp/BaseImporter.h
  23. 1 1
      include/assimp/ByteSwapper.h
  24. 2 2
      include/assimp/DefaultIOStream.h
  25. 2 2
      include/assimp/IOStream.hpp
  26. 2 2
      include/assimp/IOSystem.hpp
  27. 2 2
      include/assimp/LogStream.hpp
  28. 2 2
      include/assimp/Logger.hpp
  29. 1 1
      include/assimp/ProgressHandler.hpp
  30. 1 1
      include/assimp/SGSpatialSort.h
  31. 1 1
      include/assimp/SmoothingGroups.h
  32. 1 1
      include/assimp/SpatialSort.h
  33. 8 8
      include/assimp/anim.h
  34. 1 1
      include/assimp/camera.h
  35. 1 1
      include/assimp/color4.h
  36. 10 0
      include/assimp/defs.h
  37. 1 1
      include/assimp/light.h
  38. 2 2
      include/assimp/material.h
  39. 1 1
      include/assimp/matrix3x3.h
  40. 1 1
      include/assimp/matrix4x4.h
  41. 1 1
      include/assimp/matrix4x4.inl
  42. 5 5
      include/assimp/mesh.h
  43. 1 1
      include/assimp/metadata.h
  44. 1 1
      include/assimp/quaternion.h
  45. 1 1
      include/assimp/texture.h
  46. 5 5
      include/assimp/types.h
  47. 1 1
      include/assimp/vector3.h
  48. 1 1
      test/unit/utSceneCombiner.cpp

+ 4 - 4
code/3DSHelper.h

@@ -66,7 +66,7 @@ namespace D3DS  {
 */
 class Discreet3DS {
 private:
-    Discreet3DS() noexcept {
+    Discreet3DS() AI_NO_EXCEPT {
         // empty
     }
 
@@ -330,7 +330,7 @@ struct Face : public FaceWithSmoothingGroup
 /** Helper structure representing a texture */
 struct Texture {
     //! Default constructor
-    Texture() noexcept
+    Texture() AI_NO_EXCEPT
     : mOffsetU  (0.0)
     , mOffsetV  (0.0)
     , mScaleU   (1.0)
@@ -392,7 +392,7 @@ struct Material
 
 
     //! Move constructor. This is explicitly written because MSVC doesn't support defaulting it
-    Material(Material &&other) noexcept
+    Material(Material &&other) AI_NO_EXCEPT
     : mName(std::move(other.mName))
     , mDiffuse(std::move(other.mDiffuse))
     , mSpecularExponent(std::move(other.mSpecularExponent))
@@ -416,7 +416,7 @@ struct Material
     }
 
 
-    Material &operator=(Material &&other) noexcept {
+    Material &operator=(Material &&other) AI_NO_EXCEPT {
         if (this == &other) {
             return *this;
         }

+ 1 - 1
code/AMFImporter.hpp

@@ -392,7 +392,7 @@ private:
 
 public:
 	/// Default constructor.
-	AMFImporter() noexcept
+	AMFImporter() AI_NO_EXCEPT
     : mNodeElement_Cur(nullptr)
     , mReader(nullptr) {
         // empty

+ 7 - 7
code/ASEParser.h

@@ -85,7 +85,7 @@ struct Material : public D3DS::Material
 
 
     //! Move constructor. This is explicitly written because MSVC doesn't support defaulting it
-    Material(Material &&other) noexcept
+    Material(Material &&other) AI_NO_EXCEPT
     : D3DS::Material(std::move(other))
     , avSubMaterials(std::move(other.avSubMaterials))
     , pcInstance(std::move(other.pcInstance))
@@ -95,7 +95,7 @@ struct Material : public D3DS::Material
     }
 
 
-    Material &operator=(Material &&other) noexcept {
+    Material &operator=(Material &&other) AI_NO_EXCEPT {
         if (this == &other) {
             return *this;
         }
@@ -129,7 +129,7 @@ struct Material : public D3DS::Material
 /** Helper structure to represent an ASE file face */
 struct Face : public FaceWithSmoothingGroup {
     //! Default constructor. Initializes everything with 0
-    Face() noexcept
+    Face() AI_NO_EXCEPT
     : amUVIndices{0}
     , mColorIndices{0}
     , iMaterial(DEFAULT_MATINDEX)
@@ -197,7 +197,7 @@ struct Animation
         TCB     = 0x2
     } mRotationType, mScalingType, mPositionType;
 
-    Animation() noexcept
+    Animation() AI_NO_EXCEPT
         :   mRotationType   (TRACK)
         ,   mScalingType    (TRACK)
         ,   mPositionType   (TRACK)
@@ -218,7 +218,7 @@ struct Animation
 /** Helper structure to represent the inheritance information of an ASE node */
 struct InheritanceInfo {
     //! Default constructor
-    InheritanceInfo() noexcept
+    InheritanceInfo() AI_NO_EXCEPT
     : abInheritPosition{true}
     , abInheritRotation{true}
     , abInheritScaling{true} {
@@ -389,7 +389,7 @@ struct Camera : public BaseNode
 /** Helper structure to represent an ASE helper object (dummy) */
 struct Dummy : public BaseNode {
     //! Constructor
-    Dummy() noexcept
+    Dummy() AI_NO_EXCEPT
     : BaseNode  (BaseNode::Dummy, "DUMMY") {
         // empty
     }
@@ -408,7 +408,7 @@ struct Dummy : public BaseNode {
  */
 class Parser {
 private:
-    Parser() noexcept {
+    Parser() AI_NO_EXCEPT {
         // empty
     }
 

+ 1 - 1
code/BaseImporter.cpp

@@ -65,7 +65,7 @@ using namespace Assimp;
 
 // ------------------------------------------------------------------------------------------------
 // Constructor to be privately used by Importer
-BaseImporter::BaseImporter() noexcept
+BaseImporter::BaseImporter() AI_NO_EXCEPT
 : m_progress() {
     // nothing to do here
 }

+ 1 - 1
code/BaseProcess.cpp

@@ -53,7 +53,7 @@ using namespace Assimp;
 
 // ------------------------------------------------------------------------------------------------
 // Constructor to be privately used by Importer
-BaseProcess::BaseProcess() noexcept
+BaseProcess::BaseProcess() AI_NO_EXCEPT
 : shared()
 , progress()
 {

+ 1 - 1
code/BaseProcess.h

@@ -216,7 +216,7 @@ class ASSIMP_API_WINONLY BaseProcess {
 
 public:
     /** Constructor to be privately used by Importer */
-    BaseProcess() noexcept;
+    BaseProcess() AI_NO_EXCEPT;
 
     /** Destructor, private as well */
     virtual ~BaseProcess();

+ 2 - 2
code/Importer.h

@@ -120,11 +120,11 @@ public:
     SharedPostProcessInfo* mPPShared;
 
     /// The default class constructor.
-    ImporterPimpl() noexcept;
+    ImporterPimpl() AI_NO_EXCEPT;
 };
 
 inline
-ImporterPimpl::ImporterPimpl() noexcept
+ImporterPimpl::ImporterPimpl() AI_NO_EXCEPT
 : mIOHandler( nullptr )
 , mIsDefaultHandler( false )
 , mProgressHandler( nullptr )

+ 2 - 2
code/LWOAnimation.h

@@ -114,7 +114,7 @@ enum PrePostBehaviour
 /** \brief Data structure for a LWO animation keyframe
  */
 struct Key {
-    Key() noexcept 
+    Key() AI_NO_EXCEPT 
     : time()
     , value()
     , inter(IT_LINE)
@@ -145,7 +145,7 @@ struct Key {
 /** \brief Data structure for a LWO animation envelope
  */
 struct Envelope {
-    Envelope() noexcept
+    Envelope() AI_NO_EXCEPT
     : index()
     , type(EnvelopeType_Unknown)
     , pre(PrePostBehaviour_Constant)

+ 1 - 1
code/LWOFileData.h

@@ -263,7 +263,7 @@ namespace LWO {
  */
 struct Face : public aiFace {
     //! Default construction
-    Face() noexcept
+    Face() AI_NO_EXCEPT
     : surfaceIndex( 0 )
     , smoothGroup( 0 )
     , type( AI_LWO_FACE ) {

+ 1 - 1
code/LimitBoneWeightsProcess.h

@@ -120,7 +120,7 @@ public:
     {
         unsigned int mBone; ///< Index of the bone
         float mWeight;      ///< Weight of that bone on this vertex
-        Weight() noexcept
+        Weight() AI_NO_EXCEPT
         : mBone(0)
         , mWeight(0.0f)
         { }

+ 2 - 2
code/MD3Loader.h

@@ -125,7 +125,7 @@ enum AlphaTestFunc
  */
 struct ShaderMapBlock
 {
-    ShaderMapBlock() noexcept
+    ShaderMapBlock() AI_NO_EXCEPT
          :  blend_src   (BLEND_NONE)
          ,  blend_dest  (BLEND_NONE)
          ,  alpha_test  (AT_NONE)
@@ -150,7 +150,7 @@ struct ShaderMapBlock
  */
 struct ShaderDataBlock
 {
-    ShaderDataBlock() noexcept
+    ShaderDataBlock() AI_NO_EXCEPT
         :   cull    (CULL_CW)
     {}
 

+ 1 - 1
code/MD5Parser.h

@@ -193,7 +193,7 @@ typedef std::vector< FrameDesc > FrameList;
 /** Represents a vertex  descriptor in a MD5 file
 */
 struct VertexDesc {
-    VertexDesc() noexcept
+    VertexDesc() AI_NO_EXCEPT
     : mFirstWeight(0)
     , mNumWeights(0) {
         // empty

+ 1 - 1
code/MDCFileData.h

@@ -118,7 +118,7 @@ struct Surface
     uint32_t ulOffsetFrameBaseFrames ;
     uint32_t ulOffsetFrameCompFrames ;
     uint32_t ulOffsetEnd;
-    Surface() noexcept
+    Surface() AI_NO_EXCEPT
     : ulIdent()
     , ucName{ 0 }
     , ulFlags()

+ 6 - 6
code/MDLFileData.h

@@ -717,7 +717,7 @@ struct GroupFrame
  */
 struct IntFace_MDL7 {
     // provide a constructor for our own convenience
-    IntFace_MDL7() noexcept
+    IntFace_MDL7() AI_NO_EXCEPT
     : mIndices { 0 }
     , iMatIndex{ 0 } {
         // empty
@@ -738,7 +738,7 @@ struct IntFace_MDL7 {
  */
 struct IntMaterial_MDL7 {
     // provide a constructor for our own convenience
-    IntMaterial_MDL7() noexcept
+    IntMaterial_MDL7() AI_NO_EXCEPT
     : pcMat( nullptr )
     , iOldMatIndices{ 0 } {
         //  empty
@@ -759,7 +759,7 @@ struct IntMaterial_MDL7 {
 struct IntBone_MDL7 : aiBone
 {
     //! Default constructor
-    IntBone_MDL7() noexcept : iParent (0xffff)
+    IntBone_MDL7() AI_NO_EXCEPT : iParent (0xffff)
     {
         pkeyPositions.reserve(30);
         pkeyScalings.reserve(30);
@@ -804,7 +804,7 @@ struct IntFrameInfo_MDL7
 struct IntGroupInfo_MDL7
 {
     //! Default constructor
-    IntGroupInfo_MDL7() noexcept
+    IntGroupInfo_MDL7() AI_NO_EXCEPT
         :   iIndex(0)
         ,   pcGroup(nullptr)
         ,   pcGroupUVs(nullptr)
@@ -841,7 +841,7 @@ struct IntGroupInfo_MDL7
 //! Holds the data that belongs to a MDL7 mesh group
 struct IntGroupData_MDL7
 {
-    IntGroupData_MDL7() noexcept
+    IntGroupData_MDL7() AI_NO_EXCEPT
         : bNeed2UV(false)
     {}
 
@@ -872,7 +872,7 @@ struct IntGroupData_MDL7
 //! Holds data from an MDL7 file that is shared by all mesh groups
 struct IntSharedData_MDL7 {
     //! Default constructor
-    IntSharedData_MDL7() noexcept
+    IntSharedData_MDL7() AI_NO_EXCEPT
         : apcOutBones(),
         iNum()
     {

+ 1 - 1
code/OptimizeMeshes.h

@@ -77,7 +77,7 @@ public:
     /** @brief Internal utility to store additional mesh info
      */
     struct MeshInfo {
-        MeshInfo() noexcept
+        MeshInfo() AI_NO_EXCEPT
         : instance_cnt(0)
         , vertex_format(0)
         , output_id(0xffffffff) {

+ 6 - 6
code/PlyParser.h

@@ -209,7 +209,7 @@ enum EElementSemantic {
 class Property {
 public:
     //! Default constructor
-    Property() noexcept
+    Property() AI_NO_EXCEPT
     : eType (EDT_Int)
     , Semantic()
     , bIsList(false)
@@ -257,7 +257,7 @@ public:
 class Element {
 public:
     //! Default constructor
-    Element() noexcept
+    Element() AI_NO_EXCEPT
     : eSemantic (EEST_INVALID)
     , NumOccur(0) {
         // empty
@@ -297,7 +297,7 @@ class PropertyInstance
 public:
 
     //! Default constructor
-    PropertyInstance() noexcept {
+    PropertyInstance() AI_NO_EXCEPT {
         // empty
     }
 
@@ -360,7 +360,7 @@ public:
 class ElementInstance {
 public:
     //! Default constructor
-    ElementInstance()  noexcept
+    ElementInstance()  AI_NO_EXCEPT
     : alProperties() {
         // empty
     }
@@ -387,7 +387,7 @@ class ElementInstanceList
 public:
 
     //! Default constructor
-    ElementInstanceList() noexcept
+    ElementInstanceList() AI_NO_EXCEPT
     : alInstances() {
         // empty
     }
@@ -414,7 +414,7 @@ class DOM
 public:
 
     //! Default constructor
-    DOM() noexcept
+    DOM() AI_NO_EXCEPT
     : alElements()
     , alElementData() {
 

+ 4 - 4
code/SMDLoader.h

@@ -69,7 +69,7 @@ namespace SMD {
 /** Data structure for a vertex in a SMD file
 */
 struct Vertex {
-    Vertex() noexcept
+    Vertex() AI_NO_EXCEPT
     : iParentNode(UINT_MAX) {
         // empty
     }
@@ -91,7 +91,7 @@ struct Vertex {
 /** Data structure for a face in a SMD file
 */
 struct Face {
-    Face() noexcept
+    Face() AI_NO_EXCEPT
     : iTexture(0x0)
     , avVertices{} {
         // empty
@@ -109,7 +109,7 @@ struct Face {
 */
 struct Bone {
     //! Default constructor
-    Bone() noexcept
+    Bone() AI_NO_EXCEPT
     : iParent(UINT_MAX)
     , bIsUsed(false) {
         // empty
@@ -129,7 +129,7 @@ struct Bone {
     //! Animation of the bone
     struct Animation {
         //! Public default constructor
-        Animation() noexcept
+        Animation() AI_NO_EXCEPT
         : iFirstTimeKey() {
             asKeys.reserve(20);
         }

+ 2 - 2
code/ScenePrivate.h

@@ -56,7 +56,7 @@ class Importer;
 
 struct ScenePrivateData {
     //  The struct constructor.
-    ScenePrivateData() noexcept;
+    ScenePrivateData() AI_NO_EXCEPT;
 
     // Importer that originally loaded the scene though the C-API
     // If set, this object is owned by this private data instance.
@@ -74,7 +74,7 @@ struct ScenePrivateData {
 };
 
 inline
-ScenePrivateData::ScenePrivateData() noexcept
+ScenePrivateData::ScenePrivateData() AI_NO_EXCEPT
 : mOrigImporter( nullptr )
 , mPPStepsApplied( 0 )
 , mIsCopy( false ) {

+ 2 - 2
code/TextureTransform.h

@@ -66,7 +66,7 @@ namespace Assimp    {
  *  to be able to update some values quickly.
 */
 struct TTUpdateInfo {
-    TTUpdateInfo() noexcept
+    TTUpdateInfo() AI_NO_EXCEPT
     : directShortcut(nullptr)
     , mat(nullptr)
     , semantic(0)
@@ -89,7 +89,7 @@ struct TTUpdateInfo {
 /** Helper class representing texture coordinate transformations
 */
 struct STransformVecInfo : public aiUVTransform {
-    STransformVecInfo() noexcept
+    STransformVecInfo() AI_NO_EXCEPT
     : uvIndex(0)
     , mapU(aiTextureMapMode_Wrap)
     , mapV(aiTextureMapMode_Wrap)

+ 5 - 5
code/XFileHelper.h

@@ -68,7 +68,7 @@ struct TexEntry {
     std::string mName;
     bool mIsNormalMap; // true if the texname was specified in a NormalmapFilename tag
 
-    TexEntry() noexcept
+    TexEntry() AI_NO_EXCEPT
     : mName()
     , mIsNormalMap(false) {
         // empty
@@ -91,7 +91,7 @@ struct Material {
     std::vector<TexEntry> mTextures;
     size_t sceneIndex; ///< the index under which it was stored in the scene's material list
 
-    Material() noexcept
+    Material() AI_NO_EXCEPT
     : mIsReference(false)
     , mSpecularExponent()
     , sceneIndex(SIZE_MAX) {
@@ -130,7 +130,7 @@ struct Mesh {
 
     std::vector<Bone> mBones;
 
-    explicit Mesh(const std::string &pName = "") noexcept
+    explicit Mesh(const std::string &pName = "") AI_NO_EXCEPT
     : mName( pName )
     , mPositions()
     , mPosFaces()
@@ -155,7 +155,7 @@ struct Node {
     std::vector<Node*> mChildren;
     std::vector<Mesh*> mMeshes;
 
-    Node() noexcept
+    Node() AI_NO_EXCEPT
     : mName()
     , mTrafoMatrix()
     , mParent(nullptr)
@@ -220,7 +220,7 @@ struct Scene
     std::vector<Animation*> mAnims;
     unsigned int mAnimTicksPerSecond;
 
-    Scene() noexcept
+    Scene() AI_NO_EXCEPT
     : mRootNode(nullptr)
     , mGlobalMeshes()
     , mGlobalMaterials()

+ 1 - 1
contrib/irrXML/irrArray.h

@@ -21,7 +21,7 @@ class array
 {
 
 public:
-	array() noexcept
+	array() 
 		: data(0), allocated(0), used(0),
 			free_when_destroyed(true), is_sorted(true)
 	{

+ 1 - 1
include/assimp/BaseImporter.h

@@ -83,7 +83,7 @@ class ASSIMP_API BaseImporter {
 public:
 
     /** Constructor to be privately used by #Importer */
-    BaseImporter() noexcept;
+    BaseImporter() AI_NO_EXCEPT;
 
     /** Destructor, private as well */
     virtual ~BaseImporter();

+ 1 - 1
include/assimp/ByteSwapper.h

@@ -61,7 +61,7 @@ namespace Assimp    {
  * and vice versa. Direct use of this class is DEPRECATED. Use #StreamReader instead. */
 // --------------------------------------------------------------------------------------
 class ByteSwap {
-    ByteSwap() noexcept {}
+    ByteSwap() AI_NO_EXCEPT {}
 
 public:
 

+ 2 - 2
include/assimp/DefaultIOStream.h

@@ -69,7 +69,7 @@ class ASSIMP_API DefaultIOStream : public IOStream
 #endif // __ANDROID__
 
 protected:
-    DefaultIOStream() noexcept;
+    DefaultIOStream() AI_NO_EXCEPT;
     DefaultIOStream(FILE* pFile, const std::string &strFilename);
 
 public:
@@ -117,7 +117,7 @@ private:
 
 // ----------------------------------------------------------------------------------
 inline
-DefaultIOStream::DefaultIOStream() noexcept
+DefaultIOStream::DefaultIOStream() AI_NO_EXCEPT
 : mFile(nullptr)
 , mFilename("")
 , mCachedSize(SIZE_MAX) {

+ 2 - 2
include/assimp/IOStream.hpp

@@ -71,7 +71,7 @@ class ASSIMP_API IOStream
 {
 protected:
     /** Constructor protected, use IOSystem::Open() to create an instance. */
-    IOStream() noexcept;
+    IOStream() AI_NO_EXCEPT;
 
 public:
     // -------------------------------------------------------------------
@@ -126,7 +126,7 @@ public:
 
 // ----------------------------------------------------------------------------------
 inline
-IOStream::IOStream() noexcept {
+IOStream::IOStream() AI_NO_EXCEPT {
     // empty
 }
 

+ 2 - 2
include/assimp/IOSystem.hpp

@@ -95,7 +95,7 @@ public:
      *  Create an instance of your derived class and assign it to an
      *  #Assimp::Importer instance by calling Importer::SetIOHandler().
      */
-    IOSystem() noexcept;
+    IOSystem() AI_NO_EXCEPT;
 
     // -------------------------------------------------------------------
     /** @brief Virtual destructor.
@@ -230,7 +230,7 @@ private:
 
 // ----------------------------------------------------------------------------
 AI_FORCE_INLINE
-IOSystem::IOSystem() noexcept
+IOSystem::IOSystem() AI_NO_EXCEPT
 : m_pathStack() {
     // empty
 }

+ 2 - 2
include/assimp/LogStream.hpp

@@ -65,7 +65,7 @@ class ASSIMP_API LogStream
 {
 protected:
     /** @brief  Default constructor */
-    LogStream() noexcept;
+    LogStream() AI_NO_EXCEPT;
 
 public:
     /** @brief  Virtual destructor  */
@@ -96,7 +96,7 @@ public:
 }; // !class LogStream
 
 inline
-LogStream::LogStream() noexcept {
+LogStream::LogStream() AI_NO_EXCEPT {
     // empty
 }
 

+ 2 - 2
include/assimp/Logger.hpp

@@ -161,7 +161,7 @@ protected:
     /**
      *  Default constructor
      */
-    Logger() noexcept;
+    Logger() AI_NO_EXCEPT;
 
     /**
      *  Construction with a given log severity
@@ -215,7 +215,7 @@ protected:
 // ----------------------------------------------------------------------------------
 //  Default constructor
 inline
-Logger::Logger() noexcept
+Logger::Logger() AI_NO_EXCEPT
 : m_Severity(NORMAL) {
     // empty
 }

+ 1 - 1
include/assimp/ProgressHandler.hpp

@@ -63,7 +63,7 @@ class ASSIMP_API ProgressHandler
 {
 protected:
     /** @brief  Default constructor */
-    ProgressHandler () noexcept  {
+    ProgressHandler () AI_NO_EXCEPT  {
     }
 public:
     /** @brief  Virtual destructor  */

+ 1 - 1
include/assimp/SGSpatialSort.h

@@ -120,7 +120,7 @@ protected:
         uint32_t mSmoothGroups;
         float mDistance;        ///< Distance of this vertex to the sorting plane
 
-        Entry() noexcept
+        Entry() AI_NO_EXCEPT
         : mIndex(0)
         , mPosition()
         , mSmoothGroups(0)

+ 1 - 1
include/assimp/SmoothingGroups.h

@@ -53,7 +53,7 @@ http://www.jalix.org/ressources/graphics/3DS/_unofficials/3ds-unofficial.txt */
 // ---------------------------------------------------------------------------
 /** Helper structure representing a face with smoothing groups assigned */
 struct FaceWithSmoothingGroup {
-    FaceWithSmoothingGroup() noexcept
+    FaceWithSmoothingGroup() AI_NO_EXCEPT
     : mIndices()
     , iSmoothGroup(0) {
         // in debug builds set all indices to a common magic value

+ 1 - 1
include/assimp/SpatialSort.h

@@ -153,7 +153,7 @@ protected:
         aiVector3D mPosition; ///< Position
         ai_real mDistance; ///< Distance of this vertex to the sorting plane
 
-        Entry() noexcept
+        Entry() AI_NO_EXCEPT
         : mIndex( 999999999 ), mPosition(), mDistance( 99999. ) {
             // empty        
         }

+ 8 - 8
include/assimp/anim.h

@@ -70,7 +70,7 @@ struct aiVectorKey
 #ifdef __cplusplus
 
     /// @brief  The default constructor.
-    aiVectorKey() noexcept
+    aiVectorKey() AI_NO_EXCEPT
     : mTime( 0.0 )
     , mValue() {
         // empty
@@ -116,7 +116,7 @@ struct aiQuatKey
     C_STRUCT aiQuaternion mValue;
 
 #ifdef __cplusplus
-    aiQuatKey() noexcept
+    aiQuatKey() AI_NO_EXCEPT
     : mTime( 0.0 )
     , mValue() {
         // empty
@@ -163,7 +163,7 @@ struct aiMeshKey
 
 #ifdef __cplusplus
 
-    aiMeshKey() noexcept
+    aiMeshKey() AI_NO_EXCEPT
     : mTime(0.0)
     , mValue(0)
     {
@@ -210,7 +210,7 @@ struct aiMeshMorphKey
     /** The number of values and weights */
     unsigned int mNumValuesAndWeights;
 #ifdef __cplusplus
-	aiMeshMorphKey() noexcept
+	aiMeshMorphKey() AI_NO_EXCEPT
 		: mTime(0.0)
 		, mValues(nullptr)
 		, mWeights(nullptr)
@@ -324,7 +324,7 @@ struct aiNodeAnim {
     C_ENUM aiAnimBehaviour mPostState;
 
 #ifdef __cplusplus
-    aiNodeAnim() noexcept
+    aiNodeAnim() AI_NO_EXCEPT
     : mNumPositionKeys( 0 )
     , mPositionKeys( nullptr )
     , mNumRotationKeys( 0 )
@@ -366,7 +366,7 @@ struct aiMeshAnim
 
 #ifdef __cplusplus
 
-    aiMeshAnim() noexcept
+    aiMeshAnim() AI_NO_EXCEPT
         : mNumKeys()
         , mKeys()
     {}
@@ -397,7 +397,7 @@ struct aiMeshMorphAnim
 
 #ifdef __cplusplus
 
-    aiMeshMorphAnim() noexcept
+    aiMeshMorphAnim() AI_NO_EXCEPT
         : mNumKeys()
         , mKeys()
     {}
@@ -451,7 +451,7 @@ struct aiAnimation {
     C_STRUCT aiMeshMorphAnim **mMorphMeshChannels;
 
 #ifdef __cplusplus
-    aiAnimation() noexcept
+    aiAnimation() AI_NO_EXCEPT
     : mDuration(-1.)
     , mTicksPerSecond(0.)
     , mNumChannels(0)

+ 1 - 1
include/assimp/camera.h

@@ -174,7 +174,7 @@ struct aiCamera
 
 #ifdef __cplusplus
 
-    aiCamera() noexcept
+    aiCamera() AI_NO_EXCEPT
         : mUp               (0.f,1.f,0.f)
         , mLookAt           (0.f,0.f,1.f)
         , mHorizontalFOV    (0.25f * (float)AI_MATH_PI)

+ 1 - 1
include/assimp/color4.h

@@ -59,7 +59,7 @@ template <typename TReal>
 class aiColor4t
 {
 public:
-    aiColor4t() noexcept : r(), g(), b(), a() {}
+    aiColor4t() AI_NO_EXCEPT : r(), g(), b(), a() {}
     aiColor4t (TReal _r, TReal _g, TReal _b, TReal _a)
         : r(_r), g(_g), b(_b), a(_a) {}
     explicit aiColor4t (TReal _r) : r(_r), g(_r), b(_r), a(_r) {}

+ 10 - 0
include/assimp/defs.h

@@ -289,4 +289,14 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #define AI_MAX_ALLOC(type) ((256U * 1024 * 1024) / sizeof(type))
 
+#ifndef _MSC_VER
+#  define AI_NO_EXCEPT noexcept
+#else
+#  if (_MSC_VER == 1915 )
+#    define AI_NO_EXCEPT noexcept
+#  else
+#    define AI_NO_EXCEPT
+#  endif
+#endif
+
 #endif // !! AI_DEFINES_H_INC

+ 1 - 1
include/assimp/light.h

@@ -237,7 +237,7 @@ struct aiLight
 
 #ifdef __cplusplus
 
-    aiLight() noexcept
+    aiLight() AI_NO_EXCEPT
         :   mType                 (aiLightSource_UNDEFINED)
         ,   mAttenuationConstant  (0.f)
         ,   mAttenuationLinear    (1.f)

+ 2 - 2
include/assimp/material.h

@@ -483,7 +483,7 @@ struct aiUVTransform
 
 
 #ifdef __cplusplus
-    aiUVTransform() noexcept
+    aiUVTransform() AI_NO_EXCEPT
         :   mTranslation (0.0,0.0)
         ,   mScaling    (1.0,1.0)
         ,   mRotation   (0.0)
@@ -607,7 +607,7 @@ struct aiMaterialProperty
 
 #ifdef __cplusplus
 
-    aiMaterialProperty() noexcept
+    aiMaterialProperty() AI_NO_EXCEPT
     : mSemantic( 0 )
     , mIndex( 0 )
     , mDataLength( 0 )

+ 1 - 1
include/assimp/matrix3x3.h

@@ -69,7 +69,7 @@ class aiMatrix3x3t
 {
 public:
 
-    aiMatrix3x3t() noexcept :
+    aiMatrix3x3t() AI_NO_EXCEPT :
         a1(static_cast<TReal>(1.0f)), a2(), a3(),
         b1(), b2(static_cast<TReal>(1.0f)), b3(),
         c1(), c2(), c3(static_cast<TReal>(1.0f)) {}

+ 1 - 1
include/assimp/matrix4x4.h

@@ -71,7 +71,7 @@ class aiMatrix4x4t
 public:
 
     /** set to identity */
-    aiMatrix4x4t() noexcept;
+    aiMatrix4x4t() AI_NO_EXCEPT;
 
     /** construction from single values */
     aiMatrix4x4t (  TReal _a1, TReal _a2, TReal _a3, TReal _a4,

+ 1 - 1
include/assimp/matrix4x4.inl

@@ -60,7 +60,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 // ----------------------------------------------------------------------------------------
 template <typename TReal>
-aiMatrix4x4t<TReal>::aiMatrix4x4t() noexcept :
+aiMatrix4x4t<TReal>::aiMatrix4x4t() AI_NO_EXCEPT :
     a1(1.0f), a2(), a3(), a4(),
     b1(), b2(1.0f), b3(), b4(),
     c1(), c2(), c3(1.0f), c4(),

+ 5 - 5
include/assimp/mesh.h

@@ -136,7 +136,7 @@ struct aiFace
 #ifdef __cplusplus
 
     //! Default constructor
-    aiFace() noexcept
+    aiFace() AI_NO_EXCEPT
     : mNumIndices( 0 )
     , mIndices( nullptr ) {
         // empty
@@ -220,7 +220,7 @@ struct aiVertexWeight {
 #ifdef __cplusplus
 
     //! Default constructor
-    aiVertexWeight() noexcept
+    aiVertexWeight() AI_NO_EXCEPT
     : mVertexId(0)
     , mWeight(0.0f) {
         // empty
@@ -282,7 +282,7 @@ struct aiBone {
 #ifdef __cplusplus
 
     //! Default constructor
-    aiBone() noexcept
+    aiBone() AI_NO_EXCEPT
     : mName()
     , mNumWeights( 0 )
     , mWeights( nullptr )
@@ -454,7 +454,7 @@ struct aiAnimMesh
 
 #ifdef __cplusplus
 
-    aiAnimMesh() noexcept
+    aiAnimMesh() AI_NO_EXCEPT
         : mVertices( nullptr )
         , mNormals(nullptr)
         , mTangents(nullptr)
@@ -715,7 +715,7 @@ struct aiMesh
 #ifdef __cplusplus
 
     //! Default constructor. Initializes all members to 0
-    aiMesh() noexcept
+    aiMesh() AI_NO_EXCEPT
     : mPrimitiveTypes( 0 )
     , mNumVertices( 0 )
     , mNumFaces( 0 )

+ 1 - 1
include/assimp/metadata.h

@@ -129,7 +129,7 @@ struct aiMetadata {
     /** 
      *  @brief  The default constructor, set all members to zero by default.
      */
-    aiMetadata() noexcept
+    aiMetadata() AI_NO_EXCEPT
     : mNumProperties(0)
     , mKeys(nullptr)
     , mValues(nullptr) {

+ 1 - 1
include/assimp/quaternion.h

@@ -60,7 +60,7 @@ template <typename TReal>
 class aiQuaterniont
 {
 public:
-    aiQuaterniont() noexcept : w(1.0), x(), y(), z() {}
+    aiQuaterniont() AI_NO_EXCEPT : w(1.0), x(), y(), z() {}
     aiQuaterniont(TReal pw, TReal px, TReal py, TReal pz)
         : w(pw), x(px), y(py), z(pz) {}
 

+ 1 - 1
include/assimp/texture.h

@@ -201,7 +201,7 @@ struct aiTexture {
     }
 
     // Construction
-    aiTexture() noexcept
+    aiTexture() AI_NO_EXCEPT
     : mWidth(0)
     , mHeight(0)
     , achFormatHint{ 0 }

+ 5 - 5
include/assimp/types.h

@@ -122,7 +122,7 @@ extern "C" {
 struct aiPlane
 {
 #ifdef __cplusplus
-    aiPlane () noexcept : a(0.f), b(0.f), c(0.f), d(0.f) {
+    aiPlane () AI_NO_EXCEPT : a(0.f), b(0.f), c(0.f), d(0.f) {
     }
     aiPlane (ai_real _a, ai_real _b, ai_real _c, ai_real _d)
         : a(_a), b(_b), c(_c), d(_d) {}
@@ -141,7 +141,7 @@ struct aiPlane
 struct aiRay
 {
 #ifdef __cplusplus
-    aiRay () noexcept {}
+    aiRay () AI_NO_EXCEPT {}
     aiRay (const aiVector3D& _pos, const aiVector3D& _dir)
         : pos(_pos), dir(_dir) {}
 
@@ -159,7 +159,7 @@ struct aiRay
 struct aiColor3D
 {
 #ifdef __cplusplus
-    aiColor3D () noexcept : r(0.0f), g(0.0f), b(0.0f) {}
+    aiColor3D () AI_NO_EXCEPT : r(0.0f), g(0.0f), b(0.0f) {}
     aiColor3D (ai_real _r, ai_real _g, ai_real _b) : r(_r), g(_g), b(_b) {}
     explicit aiColor3D (ai_real _r) : r(_r), g(_r), b(_r) {}
     aiColor3D (const aiColor3D& o) : r(o.r), g(o.g), b(o.b) {}
@@ -254,7 +254,7 @@ struct aiString
 {
 #ifdef __cplusplus
     /** Default constructor, the string is set to have zero length */
-    aiString() noexcept
+    aiString() AI_NO_EXCEPT
     : length( 0 )
     , data {0} {
         data[0] = '\0';
@@ -480,7 +480,7 @@ struct aiMemoryInfo
 #ifdef __cplusplus
 
     /** Default constructor */
-    aiMemoryInfo() noexcept
+    aiMemoryInfo() AI_NO_EXCEPT
         : textures   (0)
         , materials  (0)
         , meshes     (0)

+ 1 - 1
include/assimp/vector3.h

@@ -66,7 +66,7 @@ template <typename TReal>
 class aiVector3t
 {
 public:
-    aiVector3t() noexcept : x(), y(), z() {}
+    aiVector3t() AI_NO_EXCEPT : x(), y(), z() {}
     aiVector3t(TReal _x, TReal _y, TReal _z) : x(_x), y(_y), z(_z) {}
     explicit aiVector3t (TReal _xyz ) : x(_xyz), y(_xyz), z(_xyz) {}
     aiVector3t( const aiVector3t& o ) : x(o.x), y(o.y), z(o.z) {}

+ 1 - 1
test/unit/utSceneCombiner.cpp

@@ -73,7 +73,7 @@ TEST_F( utSceneCombiner, MergeMeshes_ValidNames_Test ) {
     EXPECT_EQ( "mesh_1.mesh_2.mesh_3", outName );
 }
 
-TEST_F( utSceneCombiner, CopySceneWithNullptr_NoException ) {
+TEST_F( utSceneCombiner, CopySceneWithNullptr_AI_NO_EXCEPTion ) {
     EXPECT_NO_THROW( SceneCombiner::CopyScene( nullptr, nullptr ) );
     EXPECT_NO_THROW( SceneCombiner::CopySceneFlat( nullptr, nullptr ) );
 }