requirements.html 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  3. <title>Prerequisites - Boost.Outcome documentation</title>
  4. <link rel="stylesheet" href="./css/boost.css" type="text/css">
  5. <meta name="generator" content="Hugo 0.52 with Boostdoc theme">
  6. <meta name="viewport" content="width=device-width,initial-scale=1.0"/>
  7. <link rel="icon" href="./images/favicon.ico" type="image/ico"/>
  8. <body><div class="spirit-nav">
  9. <a accesskey="p" href="./index.html"><img src="./images/prev.png" alt="Prev"></a>
  10. <a accesskey="u" href="./index.html"><img src="./images/up.png" alt="Up"></a>
  11. <a accesskey="h" href="./index.html"><img src="./images/home.png" alt="Home"></a><a accesskey="n" href="./build.html"><img src="./images/next.png" alt="Next"></a></div><div id="content">
  12. <div class="titlepage"><div><div><h1 style="clear: both">Prerequisites</h1></div></div></div>
  13. <p>Outcome is a header-only C++ 14 library known to work well on the latest
  14. point releases of these compiler-platform combinations or better:</p>
  15. <ul>
  16. <li>clang 4.0.1 (LLVM) [FreeBSD, Linux, OS X]</li>
  17. <li>GCC 6.5 [Linux]</li>
  18. <li>Visual Studio 2017.9 [Windows]</li>
  19. <li>XCode 9 [MacOS]</li>
  20. </ul>
  21. <p>It is worth turning on C++ 17 if you can, as there are many usability and
  22. performance improvements. If your compiler implements the Concepts TS, it
  23. is worth turning support on. Support is automatically
  24. detected and used.</p>
  25. <p>Partially working compilers (this was last updated January 2019):</p>
  26. <ul>
  27. <li>clang 3.5 - 3.9 can compile varying degrees of the test suite, the
  28. problem is lack of complete and unbuggy C++ 14 language support.</li>
  29. <li>Older point releases of GCCs 7 and 8 have internal compiler error bugs
  30. in their constexpr implementation which tend to be triggered by using
  31. Outcome in constexpr. If you don&rsquo;t use Outcome in constexpr, you won&rsquo;t
  32. see these problems. If you need your GCC to not ICE, upgrade to the
  33. very latest point release, the constexpr ICE has been since fixed.</li>
  34. <li>Early editions of Visual Studio 2017 have many corner case problems.
  35. The latest point release, VS2017.9, only has a few known problems,
  36. and should be relatively unsurprising for most use cases.</li>
  37. </ul>
  38. <hr />
  39. <p>&ldquo;C++ 14&rdquo; compilers which do not work, and will not work until their
  40. maintainers fix them:</p>
  41. <ul>
  42. <li>GCC 5, due to a bug in nested template variables parsing which was fixed
  43. in GCC 6. I appreciate that this upsets a lot of users. Please raise your
  44. upset at <a href="https://gcc.gnu.org/bugzilla/">https://gcc.gnu.org/bugzilla/</a>. In the meantime, you can get fairly
  45. far in Outcome with even clang 3.5.</li>
  46. <li>Any compiler which uses the libstdc++ version which comes with GCC 5, as it does
  47. not implement enough of the C++ 14 standard library for Outcome to compile.</li>
  48. </ul>
  49. </div><p><small>Last revised: June 20, 2019 at 22:20:02 &#43;0100</small></p>
  50. <hr>
  51. <div class="spirit-nav">
  52. <a accesskey="p" href="./index.html"><img src="./images/prev.png" alt="Prev"></a>
  53. <a accesskey="u" href="./index.html"><img src="./images/up.png" alt="Up"></a>
  54. <a accesskey="h" href="./index.html"><img src="./images/home.png" alt="Home"></a><a accesskey="n" href="./build.html"><img src="./images/next.png" alt="Next"></a></div></body>
  55. </html>