Browse Source

Silence MSVC warning with std::getenv. (#1744)

Jérémie Dumas 4 years ago
parent
commit
b99351efe4
1 changed files with 13 additions and 1 deletions
  1. 13 1
      include/igl/default_num_threads.cpp

+ 13 - 1
include/igl/default_num_threads.cpp

@@ -23,6 +23,18 @@ IGL_INLINE unsigned int igl::default_num_threads(unsigned int user_num_threads)
     unsigned int get_num_threads() const { return m_num_threads; }
     unsigned int get_num_threads() const { return m_num_threads; }
 
 
   private:
   private:
+    static const char* getenv_nowarning(const char* env_var)
+    {
+#ifdef _MSC_VER
+#pragma warning(push)
+#pragma warning(disable : 4996)
+#endif
+      return std::getenv(env_var);
+#ifdef _MSC_VER
+#pragma warning(pop)
+#endif
+    }
+
     MySingleton(unsigned int force_num_threads) {
     MySingleton(unsigned int force_num_threads) {
       // User-defined default
       // User-defined default
       if (force_num_threads) {
       if (force_num_threads) {
@@ -30,7 +42,7 @@ IGL_INLINE unsigned int igl::default_num_threads(unsigned int user_num_threads)
         return;
         return;
       }
       }
       // Set from env var
       // Set from env var
-      if (char *env_str = getenv("IGL_NUM_THREADS")) {
+      if (const char *env_str = getenv_nowarning("IGL_NUM_THREADS")) {
         const int env_num_thread = atoi(env_str);
         const int env_num_thread = atoi(env_str);
         if (env_num_thread > 0) {
         if (env_num_thread > 0) {
           m_num_threads = static_cast<unsigned int>(env_num_thread);
           m_num_threads = static_cast<unsigned int>(env_num_thread);