Microsoft Visual C++ Explained

Visual C++
Developer:Microsoft
Released:[1]
Latest Release Version:14.40.33810
Programming Language:C++[2]
Operating System:Windows
Platform:IA-32, x86-64 and ARM
Language:English, Chinese (Simplified & Traditional), Czech, French, German, Italian, Japanese, Korean, Polish, Portuguese (Brazilian), Russian, Spanish, Turkish
Genre:Compiler
License:Trialware and freeware

Microsoft Visual C++ (MSVC) is a compiler for the C, C++, C++/CLI and C++/CX programming languages by Microsoft. MSVC is proprietary software; it was originally a standalone product but later became a part of Visual Studio and made available in both trialware and freeware forms. It features tools for developing and debugging C++ code, especially code written for the Windows API, DirectX and .NET.

Many applications require redistributable Visual C++ runtime library packages to function correctly. These packages are frequently installed separately from the applications they support, enabling multiple applications to use the package with only a single installation. These Visual C++ redistributable and runtime packages are mostly installed for standard libraries that many applications use.[3]

History

The predecessor to Visual C++ was called Microsoft C/C++. There was also a Microsoft QuickC 2.5 and a Microsoft QuickC for Windows 1.0. The Visual C++ compiler is still known as Microsoft C/C++ and as of the release of Visual C++ 2015 Update 2, is on version 14.0.23918.0.

16-bit versions

Strictly 32-bit versions

32-bit and 64-bit versions

Internal version numbering

There are several different version numbers to consider when working with Visual C or C++. The oldest and most original of these is the compiler version number, which has been monotonically increased since the early Microsoft C compiler days. This is the version returned by running the command cl.exe on its own without any options. By taking two digits after the decimal and dropping the decimal point, this also becomes the value of the C pre-processor macro: _MSC_VER, and the CMake variable: MSVC_VERSION. A longer version of the C macro is _MSC_FULL_VER to make more finely-grained distinctions between builds of the compiler. An example of _MSC_VER is "1933" to represent version 19.33 of the Microsoft C/C++ compiler, and of _MSC_FULL_VER is "193331630". You should use the >= operator to test the value of _MSC_VER or _MSC_FULL_VER instead of equality.

The Visual product version, such as "17.3.4", designates the version of Visual Studio with which version 19.33 of the compiler was packaged. Then there is the Microsoft Visual C/C++ Runtime Library version, e.g. "14.3". From this, one can deduce also the toolset version, which can be obtained by taking the first three digits of the runtime library version and dropping the decimal, e.g. "143". It includes the Visual C/C++ runtime library, as well as compilers, linkers, assemblers, other build tools, and matching libraries and header files. The following is a (scrapeable) table of the known correlated version numbers.

Visual Studio Versions[52] [53] ! product name !! VC (Version Code) !! marketing year !! _MSC_VER !! _MSC_FULL_VER !! runtime library version
Microsoft C 6.0 600
Microsoft C/C++ 7.0 700
Visual C++ 1.0 1.0 800 1
Visual C++ 2.0 2.0 900 2
Visual C++ 4.0 4.0 1000 4
Visual C++ 4.1 4.1 1010 4.1
Visual C++ 4.2 4.2 1020 4.2
Visual Studio 97 [5.0] 5.0 97 1100 5
Visual Studio 6.0 SP5 6.0 1200 12008804 6
Visual Studio 6.0 SP6 6.0 1200 12008804 6
Visual Studio .NET 2002 [7.0] 7.0 2002 1300 13009466 7
Visual Studio .NET 2003 Beta [7.1] 7.1 2003 1310 13102292 7.1
Visual Studio Toolkit 2003 [7.1] 7.1 2003 1310 13103052 7.1
Visual Studio .NET 2003 [7.1] 7.1 2003 1310 13103077 7.1
Visual Studio .NET 2003 SP1 [7.1] 7.1 2003 1310 13106030 7.1
Visual Studio 2005 Beta 1 [8.0] 8.0 2005 1400 140040607 8
Visual Studio 2005 Beta 2 [8.0] 8.0 2005 1400 140050215 8
Visual Studio 2005 [8.0] 8.0 2005 1400 140050320 8
Visual Studio 2005 SP1 [8.0] 8.0 2005 1400 140050727 8
Visual Studio 2008 Beta 2 [9.0] 8.0 2008 1500 150020706 9
Visual Studio 2008 [9.0] 9.0 2010 1500 150021022 9
Visual Studio 2008 SP1 [9.0] 9.0 2010 1500 150030729 9
Visual Studio 2010 Beta 1 [10.0] 10.0 2010 1600 160020506 10
Visual Studio 2010 Beta 2 [10.0] 10.0 2010 1600 160021003 10
Visual Studio 2010 [10.0] 10.0 2010 1600 160030319 10
Visual Studio 2010 SP1 [10.0] 10.0 2010 1600 160040219 10
Visual Studio 2012 [11.0] 11.0 2012 1700 170050727 11
Visual Studio 2012 Update 1 [11.0] 11.0 2012 1700 170051106 11
Visual Studio 2012 Update 2 [11.0] 11.0 2012 1700 170060315 11
Visual Studio 2012 Update 3 [11.0] 11.0 2012 1700 170060610 11
Visual Studio 2012 Update 4 [11.0] 11.0 2012 1700 170061030 11
Visual Studio 2012 November CTP [11.0] 11.0 2012 1700 170051025 11
Visual Studio 2013 Preview [12.0] 12.0 2013 1800 180020617 12
Visual Studio 2013 RC [12.0] 12.0 2013 1800 180020827 12
Visual Studio 2013 [12.0] 12.0 2013 1800 180021005 12
Visual Studio 2013 Update 1 [12.0] 12.0 2013 1800 180021005 12
Visual Studio 2013 Update2 RC [12.0] 12.0 2013 1800 180030324 12
Visual Studio 2013 Update 2 [12.0] 12.0 2013 1800 180030501 12
Visual Studio 2013 Update 3 [12.0] 12.0 2013 1800 180030723 12
Visual Studio 2013 Update 4 [12.0] 12.0 2013 1800 180031101 12
Visual Studio 2013 Update 5 [12.0] 12.0 2013 1800 180040629 12
Visual Studio 2013 November CTP [12.0] 12.0 2013 1800 180021114 12
Visual Studio 2015 [14.0] 14.0 2015 1900 190023026 14
Visual Studio 2015 Update 1 [14.0] 14.0 2015 1900 190023506 14
Visual Studio 2015 Update 2 [14.0] 14.0 2015 1900 190023918 14
Visual Studio 2015 Update 3 [14.0] 14.0 2015 1900 190024210 14
Visual Studio 2017 version 15.0 15.0 2017 1910 191025017 14.1
Visual Studio 2017 version 15.1 15.1 2017 1910 191025017 14.1
Visual Studio 2017 version 15.2 15.2 2017 1910 191025017 14.1
Visual Studio 2017 version 15.3.3 15.3.3 2017 1911 191125507 14.11
Visual Studio 2017 version 15.4.4 15.4.4 2017 1911 191125542 14.11
Visual Studio 2017 version 15.4.5 15.4.5 2017 1911 191125547 14.11
Visual Studio 2017 version 15.5.2 15.5.2 2017 1912 191225831 14.12
Visual Studio 2017 version 15.5.3 15.5.3 2017 1912 191225834 14.12
Visual Studio 2017 version 15.5.4 15.5.4 2017 1912 191225834 14.12
Visual Studio 2017 version 15.5.6 15.5.6 2017 1912 191225835 14.12
Visual Studio 2017 version 15.5.7 15.5.7 2017 1912 191225835 14.12
Visual Studio 2017 version 15.6.0 15.6.0 2017 1913 191326128 14.13
Visual Studio 2017 version 15.6.1 15.6.1 2017 1913 191326128 14.13
Visual Studio 2017 version 15.6.2 15.6.2 2017 1913 191326128 14.13
Visual Studio 2017 version 15.6.3 15.6.3 2017 1913 191326129 14.13
Visual Studio 2017 version 15.6.4 15.6.4 2017 1913 191326129 14.13
Visual Studio 2017 version 15.6.6 15.6.6 2017 1913 191326131 14.13
Visual Studio 2017 version 15.6.7 15.6.7 2017 1913 191326132 14.13
Visual Studio 2017 version 15.7.1 15.7.1 2017 1914 191426428 14.14
Visual Studio 2017 version 15.7.2 15.7.2 2017 1914 191426429 14.14
Visual Studio 2017 version 15.7.3 15.7.3 2017 1914 191426430 14.14
Visual Studio 2017 version 15.7.5 15.7.5 2017 1914 191426433 14.14
Visual Studio 2017 version 15.9.1 15.9.1 2017 1916 191627023 14.16
Visual Studio 2017 version 15.9.4 15.9.4 2017 1916 191627025 14.16
Visual Studio 2017 version 15.9.5 15.9.5 2017 1916 191627026 14.16
Visual Studio 2017 version 15.9.7 15.9.7 2017 1916 191627027 14.16
Visual Studio 2017 version 15.9.11 15.9.11 2017 1916 191627030 14.16
Visual Studio 2019 version 16.0.0 16.0.0 2019 1920 192027508 14.20
Visual Studio 2019 version 16.1.2 16.1.2 2019 1921 192127702 14.21
Visual Studio 2019 version 16.2.3 16.2.3 2019 1922 192227905 14.21
Visual Studio 2019 version 16.3.2 16.3.2 2019 1923 192328105 14.21
Visual Studio 2019 version 16.4.0 16.4.0 2019 1924 192428314 14.24
Visual Studio 2019 version 16.5.1 16.5.1 2019 1925 192528611 14.25
Visual Studio 2019 version 16.6.2 16.6.2 2019 1926 192628806 14.26
Visual Studio 2019 version 16.7 16.7 2019 1927 192729112 14.27
Visual Studio 2019 version 16.8.1 16.8.1 2019 1928 192829333 14.28
Visual Studio 2019 version 16.8.2 16.8.2 2019 1928 192829334 14.28
Visual Studio 2019 version 16.9.016.9.02019192819282991014.28
Visual Studio 2019 version 16.9.2 16.9.2 2019 1928 192829913 14.28
Visual Studio 2019 version 16.9.1716.9.172019192819282992114.28
Visual Studio 2019 version 16.9.1816.9.182019192819282992114.28
Visual Studio 2019 version 16.9.1916.9.192019192819282992314.28
Visual Studio 2019 version 16.11.2 16.11.2 2019 1929 192930133 14.29
Visual Studio 2019 version 16.11.816.11.82019192919293013814.29
Visual Studio 2019 version 16.11.916.11.92019192919293013914.29
Visual Studio 2019 version 16.11.1016.11.102019192919293014014.29
Visual Studio 2019 version 16.11.1116.11.112019192919293014114.29
Visual Studio 2019 version 16.11.1216.11.122019192919293014214.29
Visual Studio 2019 version 16.11.1616.11.162019192919293014514.29
Visual Studio 2019 version 16.11.24 16.11.24 2019 1929 192930148 14.29
Visual Studio 2019 version 16.11.2716.11.272019192919293015114.29
Visual Studio 2019 version 16.11.3516.11.352019192919293015414.29
Visual Studio 2022 version 17.0.1 17.0.1 2022 1930 193030705 14.30
Visual Studio 2022 version 17.0.2 17.0.2 2022 1930 193030706 14.31
Visual Studio 2022 version 17.1.317.1.32022193119313110514.31
Visual Studio 2022 version 17.2.2 17.2.2 2022 1932 193231329 14.32
Visual Studio 2022 version 17.3.4 17.3.4 2022 1933 193331630 14.33
Visual Studio 2022 version 17.4.0 17.4.0 2022 1934 193431933 14.34
Visual Studio 2022 version 17.5.0 17.5.0 2022 1935 193532215 14.35
Visual Studio 2022 version 17.6.0 17.6.0 2022 1936 193632532 14.36
Visual Studio 2022 version 17.6.2 17.6.2 2022 1936 193632532 14.36.32532
Visual Studio 2022 version 17.6.4 17.6.4 2022 1936 193632535 14.36.32532
Visual Studio 2022 version 17.7.0 17.7.0 2022 1937 193732822 14.36.32543
Visual Studio 2022 version 17.8.0 17.8.0 2022 1938 193833130 14.38.33135
Visual Studio 2022 version 17.9.1 17.9.1 2022 1939 193933520 14.39.33520
Visual Studio 2022 version 17.9.617.9.62022193919393352314.39.33523
Visual Studio 2022 version 17.10.117.10.12022194019403381114.40.33811

Compatibility

ABI

The Visual C++ compiler ABI have historically changed between major compiler releases.[54] This is especially the case for STL containers, where container sizes have varied a lot between compiler releases.[55] Microsoft therefore recommends against using C++ interfaces at module boundaries when one wants to enable client code compiled using a different compiler version. Instead of C++, Microsoft recommends using C[56] or COM[57] interfaces, which are designed to have a stable ABI between compiler releases.

All 14.x MSVC releases have a stable ABI,[58] and binaries built with these versions can be mixed in a forwards-compatible manner, noting the following restrictions:

C runtime libraries

Visual C++ ships with different versions of C runtime libraries.[59] This means users can compile their code with any of the available libraries. However, this can cause some problems when using different components (DLLs, EXEs) in the same program. A typical example is a program using different libraries. The user should use the same C Run-Time for all the program's components unless the implications are understood. Microsoft recommends using the multithreaded, dynamic link library (/MD or /MDd compiler option) to avoid possible problems.

POSIX

Although Microsoft's CRT implements a large subset of POSIX interfaces, the Visual C++ compiler will emit a warning on every use of such functions by default. The rationale is that C and C++ standards require an underscore prefix before implementation-defined interfaces, so the use of these functions are non-standard.[60] However, systems that are actually POSIX-compliant would not accept these underscored names, and it is more portable to just turn off the warning instead.

C

Although the product originated as an IDE for the C programming language, for many years the compiler's support for that language conformed only to the original edition of the C standard, dating from 1989, but not the C99 revision of the standard. There had been no plans to support C99 even in 2011, more than a decade after its publication.[61]

Visual C++ 2013 finally added support for various C99 features in its C mode (including designated initializers, compound literals, and the _Bool type),[62] though it was still not complete.[63] Visual C++ 2015 further improved the C99 support, with full support of the C99 Standard Library, except for features that require C99 language features not yet supported by the compiler.[64]

Most of the changes from the C11 revision of the standard were still not supported by Visual C++ 2017.[65] For example, generic selections via the _Generic keyword are not supported by the compiler and result in a syntax error.[66]

The preprocessor was overhauled in 2018, with C11 in sight:[67]

_Generic support has been committed to MSVC as of February 2020.[68]

In September 2020, Microsoft announced C11 and C17 standards support in MSVC would arrive in version 16.8.[69] This did not include optional features but Microsoft indicated that they were planning to add support for atomics and threads at a later date. In version 17.5, partial (since atomic locks are missing) and experimental (meaning hidden behind the compiler flag /experimental:c11atomics) support for atomics was added[70] and in version 17.8, support for threads was added, this time not behind a compiler flag.[71] [72]

C++

With default settings MSVC does not do two-phase name lookup which prevents it from flagging a wide range of invalid code. Most checks are deferred to template instantiation. More recent versions remedy this behavior, but it needs to be enabled by the command-line option /permissive-.[73]

Further reading

External links

Notes and References

  1. News: Visual C++ adds Windows support . InfoWorld . February 22, 1993 . 17 .
  2. Web site: The Programming Languages Beacon, v10.0 . Vincent . Lextrait . January 2010 . 14 March 2010 . dead . https://archive.today/20120530/http://www.lextrait.com/Vincent/implementations.html . 30 May 2012 .
  3. http://ask-leo.com/do_i_need_these_microsoft_visual_c_redistributables.html "Do I need these Microsoft Visual C++ redistributables?"
  4. Book: Computer Language - Issue 06 (1985-02)(CL Publications)(US) . February 1985.
  5. Leibson . Steve . 1985-02-01 . Software Reviews: Expert team analyzes 21 C compilers . Computer Language . 2020-06-05 .
  6. Web site: Optimizing With Microsoft C 6.0 . August 1, 1990 . Scott Robert . Ladd .
  7. Myers . Ben . 1992-07-01 . Microsoft C/C++ . . . 387 . 2023-12-21.
  8. . News/Software Pipeline Announced . . InfoWorld Media Group . 1993-03-15 . 2023-12-21.
  9. Retrieved from http://support.microsoft.com/kb/196831.
  10. News: Visual C++ is a strong development tool . InfoWorld . June 21, 1993 . 94 .
  11. News: Rival DOS Extenders debut at show . InfoWorld . March 1, 1993 . 18 .
  12. News: Visual C++ 1.5 integrates OLE, ODBC . InfoWorld . November 8, 1993 . 5 .
  13. News: Microsoft set to prerelease 32-bit Visual C++ . InfoWorld . July 19, 1993 . 12 .
  14. News: C++ IDEs evolve . InfoWorld . April 4, 1994 . 79 .
  15. Web site: Microsoft Visual C++ Strategy.
  16. Web site: Generalized Evangelism Timeline . https://web.archive.org/web/20070202162055/http://www.iowaconsumercase.org/011607/3000/PX03096.pdf . dead . 2007-02-02 . Microsoft Corporation. Plamondon . James . 9 October 1997 . 27 January 2024 .
  17. Book: Cross-Platform Development Using Visual C++ . M&T Books . Cullens . Chane . Blackwell . Ken . 1-55851-428-7 . 1995 . 27 January 2024 .
  18. Web site: Obsolete Products . dead . https://web.archive.org/web/20050814234847/http://support.microsoft.com/gp/lifeobsoleteproducts . 2005-08-14 .
  19. Book: Toth, Viktor . Visual C++ 4.0 unleashed . 26 July 2013 . 1996 . . Indianapolis . 9780672308741 . 1 . http://doc.sumy.ua/prog/unleash4/vcu01fi.htm.
  20. Web site: History of Visual Studio (Part 3). 6 August 2021 .
  21. Web site: Major Changes from Visual C++ 4.0 to 4.2 . 2018-04-18 . https://web.archive.org/web/20100228175137/http://msdn.microsoft.com/en-us/library/aa697418(VS.71).aspx . 2010-02-28.
  22. Web site: Major Changes from Visual C++ 4.2 to 5.0.
  23. Web site: Microsoft Visual C++ 5.0 Learning Edition. . https://web.archive.org/web/19990427114135/http://www.microsoft.com/products/prodref/199_ov.htm. April 27, 1999.
  24. Web site: Microsoft Visual C++ 5.0 Professional Edition. . https://web.archive.org/web/19990427101205/http://www.microsoft.com/products/prodref/197_ov.htm. April 27, 1999.
  25. Web site: Microsoft Visual C++ 5.0 Enterprise Edition. . https://web.archive.org/web/19990417134138/http://www.microsoft.com/products/prodref/198_ov.htm. April 17, 1999.
  26. Web site: Microsoft Visual C++ 5.0 RISC Edition. . https://web.archive.org/web/19990429121236/http://www.microsoft.com/products/prodref/501_ov.htm. April 29, 1999.
  27. News: Criminal Complaint . June 8, 2018 . Nathan P. . Shields . . 128 . This alone is not a dispositive link, as Visual C++ 6.0, released in 1998, still has proponents mostly because it does not require the installation of Microsoft’s .NET framework in order to run, as later versions of Visual C++ do..
  28. Web site: Major Changes from Visual C++ 5.0 to 6.0. https://web.archive.org/web/20080914202003/http://msdn.microsoft.com/en-us/library/aa729389(VS.71).aspx. September 14, 2008.
  29. This page stresses that Users must also be running Windows 98, Windows NT 4.0, or Windows 2000. Retrieved from http://msdn2.microsoft.com/en-us/vstudio/aa718349.aspx.
  30. Douglas Boling :Programming Microsoft Windows CE .NET, Third Edition Microsoft Press; 3rd edition (June 25, 2003) Paperback: 1264 pages - Companion CD with Microsoft eMbedded Visual C++ 4.0 Service Pack 2
  31. http://msdn.microsoft.com/en-us/library/6sehtctf(v=VS.90).aspx How to: Modify WINVER and _WIN32_WINNT
  32. http://msdn.microsoft.com/en-us/library/bb531344(v=VS.90).aspx Breaking Changes
  33. http://msdn.microsoft.com/en-us/library/ws0swas0(VS.100).aspx Windows Platforms (CRT)
  34. Web site: Visual C++ 2008 Breaking Changes. 25 May 2023 .
  35. Web site: IntelliSense, part 2: The Future . Visual C++ Team Blog . March 12, 2008.
  36. Web site: Why IntelliSense is not supported for C++/CLI in Visual Studio 2010 . March 13, 2011.
  37. Web site: Rebuilding Intellisense . Visual C++ Team Blog . 27 May 2009 .
  38. Web site: Visual C++ Code Generation in Visual Studio 2010 . Visual C++ Team Blog.
  39. Web site: C++0x Core Language Features In VC10: The Table.
  40. Web site: Stephan T. Lavavej: Everything you ever wanted to know about nullptr .
  41. Web site: Released: Windows SDK for Windows 7 and .NET Framework 4 . Microsoft Windows SDK Blog.
  42. http://support.microsoft.com/kb/2519277/en-us FIX: Visual C++ compilers are removed when you upgrade Visual Studio 2010 Professional or Visual Studio 2010 Express to Visual Studio 2010 SP1 if Windows SDK v7.1 is installed
  43. Web site: What's New for Visual C++ in Visual Studio 2012 . . Microsoft . . 29 November 2012 . September 20, 2015.
  44. Web site: What's New for Visual C++ in Visual Studio 2013 . . Microsoft . . 28 April 2015 . September 20, 2015.
  45. Web site: Visual Studio 2015 RTM Now Available. Eric Battalio. July 20, 2015. Microsoft. Visual C++ Team Blog.
  46. Web site: C++11/14/17 Features In VS 2015 RTM. Stephan T. Lavavej. June 19, 2015. Microsoft. Visual C++ Team Blog.
  47. https://www.infoq.com/news/2016/06/visual-cpp-telemetry Reviewing Microsoft's Automatic Insertion of Telemetry into C++ Binaries
  48. Web site: Visual Studio adding telemetry function calls to binary? • /r/cpp. reddit. 7 May 2016. 2016-08-17.
  49. Web site: Announcing Visual Studio 2017 General Availability… and more. Julia Liuson. March 7, 2017. Microsoft. Visual Studio Team Blog.
  50. Web site: Join us April 2nd for the Launch of Visual Studio 2019!. Amanda Silver. February 14, 2019. Microsoft. Visual Studio Team Blog.
  51. Web site: Visual Studio 2022 now available. Amanda Silver. November 8, 2021. Microsoft. Visual Studio Team Blog.
  52. Web site: Pre-defined Compiler Macros / Wiki / Compilers. dev.to. 22 May 2018 . 2023-02-20.
  53. Web site: Predefined Macros / Microsoft Learn. learn.microsoft.com. 8 August 2022 . 2023-05-26.
  54. Microsoft MSDN: Breaking Changes in Visual C++
  55. Microsoft MSDN: Containers (Modern C++)
  56. Microsoft MSDN: Portability At ABI Boundaries (Modern C++)
  57. Microsoft forum: Binary compatibility across Visual C++ versions
  58. docs.microsoft.com: C++ binary compatibility between Visual Studio 2015, 2017, and 2019
  59. http://msdn.microsoft.com/en-us/library/abx4dbyh.aspx C Run-Time Libraries
  60. Web site: Compatibility . Microsoft: CRT library features . 26 October 2022 . en-us.
  61. Web site: C99 support. Microsoft Connect. https://web.archive.org/web/20160304185822/http://connect.microsoft.com/VisualStudio/feedback/details/653336/c99-support. 2016-03-04. dead. 2015-09-21.
  62. Web site: What's New for Visual C++ in Visual Studio 2013. Microsoft Developer Network. 28 April 2015 . Microsoft.
  63. Web site: C99 library support in Visual Studio 2013. Pat Brenner. July 19, 2013. Microsoft. Visual C++ Team Blog.
  64. Web site: What's New for Visual C++ in Visual Studio 2015. Microsoft Developer Network. 3 January 2018 . Microsoft.
  65. Web site: Walkthrough: Compile a C program on the command line. Visual C++ Documentation. 10 May 2022 . Microsoft.
  66. Web site: MSVC 2017 does not support _Generic (type generic macros) in C.
  67. Web site: Luvsanbat . Bat-Ulzii . July 6, 2018 . MSVC Preprocessor Progress towards Conformance . Microsoft . Visual Studio Team Blog . live . https://web.archive.org/web/20240303170213/https://devblogs.microsoft.com/cppblog/msvc-preprocessor-progress-towards-conformance/ . 3 Mar 2024.
  68. Web site: C++20 Features and Fixes . July 3, 2020 . reddit.
  69. Web site: C11 and C17 Standard Support Arriving in MSVC. September 14, 2020.
  70. Web site: C11 Atomics in Visual Studio 2022 version 17.5 Preview 2. 2022-12-13.
  71. Web site: C11 Threads in Visual Studio 2022 version 17.8 Preview 2. 2023-09-26.
  72. Web site: Murphy . Adrian . 2023-11-14 . Visual Studio 17.8 now available! . 2024-01-12 . Visual Studio Blog . en-US.
  73. Web site: Two-phase name lookup support comes to MSVC. 2017-09-11.