1. 08 May, 2019 4 commits
  2. 07 May, 2019 1 commit
    • denchat's avatar
      Move test_count_digits to format-impl-test and disable gtest warnings (#1147) · 3fd134be
      denchat authored
      * This translation unit includes `gtest.h` in which using something like `strncpy`
      
      Suppress MSVC warnings from `gtest.h` included.
      
      Warning sample:
      fmt-master\test\gtest\gtest.h(2873,10): warning: 'strncpy' is deprecated: This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. [-Wdeprecated-declarations]
      
      * Moving `test_count_digits` to format-impl-test then count_digits<4>(internal::uintptr_t) shall not be exported
      
      * retaining _CRT_SECURE_NO_WARNINGS always defined should be no harms.
      3fd134be
  3. 05 May, 2019 3 commits
  4. 04 May, 2019 2 commits
  5. 02 May, 2019 1 commit
    • denchat's avatar
      Fix DLL visibility of explicit instantiation "declaration" of... · 29c10fbf
      denchat authored
      Fix DLL visibility of explicit instantiation "declaration" of internal::basic_data<void> in header format.h and the explicit instantiation "definition" in format.cc (#1134)
      
      * Update format.cc
      
      As the explicit instantiation *declaration* of `internal::basic_data<void>` in format.h, this explicit instantiation *definition* should mirror FMT_API also.
      
      * Mirror visibility of explicit instantiation declaration 
      
      explicit instantiation declaration of internal::basic_data<void> should mirror visibility of FMT_API
      
      * Eliminate `__declspec(dllexport)` designation on extern template internal::basic_data<> when `extern` affected during exporting phase.
      
      * Add `FMT_EXTERN_TEMPLATE_API` for designate DLL export `extern template`
      
      When exporting DLL, do not designate `__declspec(dllexport)` any template that has any explicit class template declaration a.k.a. `extern template`. Instead, designate `__declspec(dllexport)` at single point where we have explicit class template definition a.k.a. normal instantiation without `extern`
      
      Note: this is a c++11 feature.
      
      * Delete whole `FMT_USE_EXTERN_TEMPLATES` block and its condition
      
      1. Remove whole `FMT_USE_EXTERN_TEMPLATES` block
      (trailing `FMT_UDL_TEMPLATE` block)
      ````
      #ifndef FMT_USE_EXTERN_TEMPLATES
      #  ifndef FMT_HEADER_ONLY
      #    define FMT_USE_EXTERN_TEMPLATES                           \
            ((FMT_CLANG_VERSION >= 209 && __cplusplus >= 201103L) || \
             (FMT_GCC_VERSION >= 303 && FMT_HAS_GXX_CXX11))
      #  else
      #    define FMT_USE_EXTERN_TEMPLATES 0
      #  endif
      #endif
      ````
      
      2. Delete `FMT_USE_EXTERN_TEMPLATES` condition, only condition, that trailing basic_data class template definition.
      ````
      #if FMT_USE_EXTERN_TEMPLATES
      extern template struct basic_data<void>;
      #endif
      ````
      
      3. Replace `FMT_API` with new `FMT_EXTERN_TEMPLATE_API` added in `core.h` for sake of extern template of `basic_data<void>`
      
      * Add `#define FMT_EXTERN extern` only when not `FMT_HEADER_ONLY`
      
      * Replace `extern` on basic_data<void> with the `FMT_EXTERN` condition in core.h
      
      * replace misspelled if !define() with ifndef
      29c10fbf
  6. 01 May, 2019 1 commit
  7. 28 Apr, 2019 3 commits
  8. 27 Apr, 2019 4 commits
  9. 21 Apr, 2019 1 commit
  10. 20 Apr, 2019 1 commit
  11. 19 Apr, 2019 1 commit
  12. 18 Apr, 2019 1 commit
  13. 17 Apr, 2019 3 commits
  14. 15 Apr, 2019 2 commits
  15. 14 Apr, 2019 1 commit
  16. 13 Apr, 2019 3 commits
  17. 12 Apr, 2019 3 commits
  18. 11 Apr, 2019 1 commit
  19. 10 Apr, 2019 4 commits