瀏覽代碼

Use Safe Constants Idioms for ObjFileParser::DEFAULT_MATERIAL.

Reference: "A static Class Member" in https://abseil.io/tips/140
Hill Ma 4 年之前
父節點
當前提交
93edbe883f
共有 2 個文件被更改,包括 3 次插入3 次删除
  1. 1 2
      code/AssetLib/Obj/ObjFileParser.cpp
  2. 2 1
      code/AssetLib/Obj/ObjFileParser.h

+ 1 - 2
code/AssetLib/Obj/ObjFileParser.cpp

@@ -47,7 +47,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #include <assimp/BaseImporter.h>
 #include <assimp/DefaultIOSystem.h>
 #include <assimp/ParsingUtils.h>
-#include <assimp/material.h>
 #include <assimp/DefaultLogger.hpp>
 #include <assimp/Importer.hpp>
 #include <cstdlib>
@@ -56,7 +55,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 namespace Assimp {
 
-const std::string ObjFileParser::DEFAULT_MATERIAL = AI_DEFAULT_MATERIAL_NAME;
+constexpr char ObjFileParser::DEFAULT_MATERIAL[];
 
 ObjFileParser::ObjFileParser() :
         m_DataIt(),

+ 2 - 1
code/AssetLib/Obj/ObjFileParser.h

@@ -42,6 +42,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #define OBJ_FILEPARSER_H_INC
 
 #include <assimp/IOStreamBuffer.h>
+#include <assimp/material.h>
 #include <assimp/mesh.h>
 #include <assimp/vector2.h>
 #include <assimp/vector3.h>
@@ -141,7 +142,7 @@ private:
     // because the class contains pointer to allocated memory
 
     /// Default material name
-    static const std::string DEFAULT_MATERIAL;
+    static constexpr char DEFAULT_MATERIAL[] = AI_DEFAULT_MATERIAL_NAME;
     //! Iterator to current position in buffer
     DataArrayIt m_DataIt;
     //! Iterator to end position of buffer