<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta content="text/html;charset=UTF-8" http-equiv="Content-Type"/>
    <meta charset="UTF-8"/>
    <title>Merge Fundamentals V1 into V2</title>
<style type="text/css">
body {color: #000000; background-color: #FFFFFF;}

del {text-decoration: line-through; color: #8B0040;}
ins {text-decoration: underline; color: #005100;}

pre code {display: inline-block; white-space: inherit}
code {white-space: nowrap}
code wbr {white-space: normal}

/*
.wording { max-width: 90ex; }
.wording .sectnum { margin-right: 1em; }
.wording .sectname { display: block; float: right;  }

section.numbered { counter-reset: par-num; }
.wording p:before, .wording dt:before {
    content: counter(par-num) " "; counter-increment: par-num;
    font-size: 80%; position: absolute; left: 2em}
*/
.wording td { border-top: thin solid black; border-bottom: thin solid black; }

section.function { clear: both; }
.attributes, .attribute {margin-left: 2em}

.docinfo {float: right}
.docinfo p {margin: 0; text-align:right; font-style: italic}

section {padding-left: 16px}
section h2, section h3, section h4, section h5, section h6 {margin-left: -16px}

h2, h3, h4, h5, h6 { margin-bottom: .75em }
h5, h6 { font-size: 1em; }
.wording h4 { font-size: 1.17em }
p {margin-top: .5em; margin-bottom: .5em}
p:first-child, ul, ol {margin-top: 0}
.todo dt:not(:first-child) {margin-top: .5em}
p, li, dd, table {max-width: 80ex}

table { margin: 1em; border-collapse: collapse;  border: thin solid black}
.strawpoll td {text-align: center}
.wording table { border: double; }
caption { white-space: pre; }
.wording td { text-align: left; }


.example {display: inline-block; clear: both; margin-left: 1ex;
          border: thin solid #0e0; background-color: #f8f8f8; padding: 1ex}

.ednote {display: inline-block; clear: both; margin-left: 1ex;
         border: thin solid #0e0; background-color: #f8f8f8; padding: 1ex}

div.ednote > *:first-child::before {content: "Note: "; display: inline; font-weight: bold}
div.ednote {display: inline-block; margin-left: 1ex; border: thin solid #fb6;
            padding: 1ex; background-color: #fff4dd}

:target {background-color: #fed}
</style>

</head>
<body>
  <header>
    <div class="docinfo">
      <p>ISO/IEC JTC1 SC22 WG21 N4521</p>
      <p>Date: <time pubdate="">2015-04-12</time></p>
      <p>Revises: <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4479.html">N4479</a></p>
      <address>
        <p>Jeffrey Yasskin &lt;<a href="mailto:jyasskin@google.com">jyasskin@google.com</a>&gt;</p>
      </address>
    </div>
    <h1>Merge Fundamentals V1 into V2</h1>
  </header>
  <section>
    <h2 id="rationale">Rationale</h2>
    <p>
      When the Working Paper for the Library Fundamentals, Version 2
      TS was started, we couldn't include the contents of Version 1
      because we didn't want to risk that a National Body would get
      confused about what document the ballots for Version 1 were
      asking them to vote on.

      Now that the ballots for Library Fundamentals Version 1 are
      complete, this risk of confusion has gone away.

      We should keep the cumulative content in the latest Library
      Fundamentals TS version for a couple reasons:
    </p>

    <ol>
      <li>
        This ensures we don't lose content as we publish new TS
        versions.  As components move into the standard, we'll remove
        them from the most recent TS version, focusing attention on
        the components that haven't moved yet.
      </li>
      <li>
        This allows us to apply issue fixes to components originally
        added in V1.  (We only have 1 ISO work item at a time for the
        Fundamentals TS, so we have only 1 Working Paper.)
      </li>
      <li>
        It's not much of a "version 2" if it just contains a disjoint
        set of content from version 1.
      </li>
    </ol>
  </section>
  <section>
    <h2 id="directions">Directions to the Library Fundamentals editor</h2>

    <p>
      Add the content approved by the editing committee for the <cite>C++
      Extensions for Library Fundamentals</cite> DTS to the <cite>C++
      Extensions for Library Fundamentals, Version 2</cite> Working Draft.

      Move this content to the <code>std::experimental::fundamentals_v2</code> namespace,
      instead of the <code>std::experimental::fundamentals_v1</code>.

      (The V2 TS shouldn't define any names inside the <code>fundamentals_v1</code> namespace.)

      In the case of conflicts, keep the content from Version 2.
    </p>
  </section>

  <section>
    <h2 id="plans">Other plans</h2>

    <p>
      When we add a library to the C++ standard, or reject it entirely,
      we should remove it from the next version of the Fundamentals TS.
    </p>
  </section>
</body>
</html>
