1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <title>Before we begin - Boost.Outcome documentation</title>
- <link rel="stylesheet" href="../../css/boost.css" type="text/css">
- <meta name="generator" content="Hugo 0.52 with Boostdoc theme">
- <meta name="viewport" content="width=device-width,initial-scale=1.0"/>
- <link rel="icon" href="../../images/favicon.ico" type="image/ico"/>
- <body><div class="spirit-nav">
- <a accesskey="p" href="../../tutorial/essential.html"><img src="../../images/prev.png" alt="Prev"></a>
- <a accesskey="u" href="../../tutorial/essential.html"><img src="../../images/up.png" alt="Up"></a>
- <a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../../tutorial/essential/result.html"><img src="../../images/next.png" alt="Next"></a></div><div id="content">
- <div class="titlepage"><div><div><h1 style="clear: both">Before we begin</h1></div></div></div>
-
- <h2 id="outcome-v2-namespace">Outcome v2 namespace</h2>
- <p>It is recommended that you refer to entities from this Outcome v2 via the following namespace alias:</p>
- <div class="code-snippet"><div class="highlight"><pre class="chroma"><code class="language-c++" data-lang="c++"><span class="k">namespace</span> <span class="n">outcome</span> <span class="o">=</span> <span class="n">BOOST_OUTCOME_V2_NAMESPACE</span><span class="p">;</span>
- </code></pre></div><a href="https://github.com/boostorg/outcome/tree/master/doc/src/snippets/using_result.cpp#L38" class="code-snippet-url" target="_blank">View this code on Github</a></div>
- <p>On standalone Outcome only, as patches and modifications are applied to this library,
- namespaces get permuted in order to not to cause binary incompatibility. At some point
- namespace <code>outcome_v2</code> will be defined, and this will be the preferred namespace.
- Until then <code>BOOST_OUTCOME_V2_NAMESPACE</code> denotes the most recently
- updated version, getting closer to <code>outcome_v2</code>.</p>
- <p>On Boost.Outcome only, as Boost provides no binary compatibility across releases,
- <code>BOOST_OUTCOME_V2_NAMESPACE</code> always expands into <code>boost::outcome_v2</code>.</p>
- <h2 id="online-compilers">Online compilers</h2>
- <p>If you’ve never used them before, you will find
- <a href="https://godbolt.org/">Godbolt</a> and <a href="https://wandbox.org/">Wandbox</a> invaluable.
- These let you play with C++ inside your web browser.</p>
- <p>Most of the source code snippets in Outcome have a link in their top right to
- the original source code on github. You can copy and paste this source code into
- Godbolt (if you wish to study the assembler generated) or Wandbox (if you
- wish to run the program).</p>
- <h3 id="godbolt">Godbolt</h3>
- <p>Godbolt is invaluable for visualising online the assembler generated for a
- piece of C++, for all the major compilers and CPU architectures.</p>
- <p>Standalone Outcome is built into Godbolt! In the right hand pane toolbar, click the
- libraries dropdown (currently third from the right, looks like a book), find
- Outcome and choose the version you want.</p>
- <p>After this is selected, you can <code>#include</code> any of these editions of Outcome:</p>
- <dl>
- <dt><code><outcome-basic.hpp></code></dt>
- <dd>An inclusion of <code>basic_outcome.hpp</code> + <code>try.hpp</code> which includes as few
- system headers as possible in order to give an absolute minimum compile time
- impact edition of Outcome. See <a href="https://github.com/ned14/stl-header-heft">https://github.com/ned14/stl-header-heft</a>.
- </dd>
- <dt><code><outcome-experimental.hpp></code></dt>
- <dd>An inclusion of <code>experimental/status_outcome.hpp</code> + <code>try.hpp</code> which
- is the low compile time impact of the basic edition combined with
- <code>status_code</code> from <a href="https://ned14.github.io/status-code/">https://ned14.github.io/status-code/</a>. If you are on an
- embedded system where binary bloat must be absolutely avoided, and don't
- mind the potentially unstable <code>status_code</code>, this is definitely the edition
- for you.
- </dd>
- <dt><code><outcome.hpp></code></dt>
- <dd>An inclusion of <code>outcome.hpp</code> which brings in all the specialisations
- for the <code>std</code> STL types, plus iostreams support. If you don't know which
- edition to use, you should use this one, it ought to "just work".</dd>
- </dl>
- <p>Here is the first tutorial topic’s source code loaded into Godbolt: <a href="https://godbolt.org/z/p-NAho">https://godbolt.org/z/p-NAho</a></p>
- <h3 id="wandbox">Wandbox</h3>
- <p>Wandbox lets you place a third party header into a separate tab. It also
- comes with a recent Boost libraries. Either technique can be used to
- explore Outcome.</p>
- <p>Here is the first tutorial topic’s source code loaded into Wandbox: <a href="https://wandbox.org/permlink/sJoeKHXSyCU5Avft">https://wandbox.org/permlink/sJoeKHXSyCU5Avft</a></p>
- </div><p><small>Last revised: February 09, 2019 at 14:45:47 UTC</small></p>
- <hr>
- <div class="spirit-nav">
- <a accesskey="p" href="../../tutorial/essential.html"><img src="../../images/prev.png" alt="Prev"></a>
- <a accesskey="u" href="../../tutorial/essential.html"><img src="../../images/up.png" alt="Up"></a>
- <a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../../tutorial/essential/result.html"><img src="../../images/next.png" alt="Next"></a></div></body>
- </html>
|