Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Comparing changes

Choose two branches to see what's changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
base fork: cplusplus/draft
...
head fork: cplusplus/draft
Checking mergeability… Don't worry, you can still create the pull request.
  • 11 commits
  • 9 files changed
  • 0 commit comments
  • 2 contributors
Commits on Aug 26, 2014
@zygoloid zygoloid Fix to 2013-09 LWG Motion 7:
[comparisons] Fix incorrect application of N3789 to the working paper:
  - Add 'constexpr' to
      std::equal_to<>::operator()
      std::not_equal_to<>::operator()
      std::greater<>::operator()
      std::less<>::operator()
      std::greater_equal<>::operator()
      std::less_equal<>::operator()
  - Reorder 'bool constexpr' to 'constexpr bool' in
      std::logical_or<T>::operator()
      std::logical_and<T>::operator()
      std::logical_not<T>::operator()

Also fixes 14882:2014 DIS JP 08, fixes 14882:2014 DIS JP 09, fixes #291.
62734eb
@zygoloid zygoloid JP 06: [dcl.constexpr] Remove incorrect example.
Also fixes #370.
4321702
@zygoloid zygoloid [multiset.cons] Add missing parameter type.
Fixes #189.
c20b92c
@zygoloid zygoloid JP 11: [thread.mutex.requirements.general] Remove outdated sentence.
This sentence directly contradicts several other portions of the
standard, and does not reflect the intended meaning.
5208210
@zygoloid zygoloid Update config for building D4141. f696706
@jwakely jwakely [atomics.syn] Fix typo by replacing ')' with '_'
Fixes #359
6512d97
@jwakely jwakely [atomics.syn] Replace comma with period
Reported by Stephan T. Lavavej.  Fixes #340
013e01f
@jwakely jwakely [func.bind.bind] Fix "template parameter back" typo.
Fixes #316
ebde185
@jwakely jwakely [futures.overview] Add ArgTypes... to swap declaration.
Fixes #336
d79ad59
Commits on Sep 02, 2014
@zygoloid zygoloid Update document stage. c0599d3
@zygoloid zygoloid Update document stage code too. 0d8d6b0
View
4 source/atomics.tex
@@ -81,9 +81,9 @@
bool atomic_compare_exchange_strong(@\textit{atomic-type}@*, T*, T) noexcept;
bool atomic_compare_exchange_weak_explicit(volatile @\textit{atomic-type}@*, T*, T,
memory_order, memory_order) noexcept;
- bool atomic_compare_exchange_weak_explicit(@\textit{atomic-type}@*, T*, T.
+ bool atomic_compare_exchange_weak_explicit(@\textit{atomic-type}@*, T*, T,
memory_order, memory_order) noexcept;
- bool atomic_compare)exchange_strong_explicit(volatile @\textit{atomic-type}@*, T*, T,
+ bool atomic_compare_exchange_strong_explicit(volatile @\textit{atomic-type}@*, T*, T,
memory_order, memory_order) noexcept;
bool atomic_compare_exchange_strong_explicit(@\textit{atomic-type}@*, T*, T,
memory_order, memory_order) noexcept;
View
6 source/config.tex
@@ -1,8 +1,8 @@
%!TEX root = std.tex
%%--------------------------------------------------
%% Version numbers
-\newcommand{\docno}{N3936}
-\newcommand{\prevdocno}{N3797}
+\newcommand{\docno}{N4141}
+\newcommand{\prevdocno}{N3936}
\newcommand{\cppver}{201402L}
%% Release date
@@ -10,4 +10,4 @@
%% Library chapters
\newcommand{\firstlibchapter}{language.support}
-\newcommand{\lastlibchapter}{thread}
+\newcommand{\lastlibchapter}{thread}
View
2  source/containers.tex
@@ -6570,7 +6570,7 @@
\indexlibrary{\idxcode{multiset}!\idxcode{multiset}}%
\begin{itemdecl}
template <class InputIterator>
- multiset(InputIterator first, last,
+ multiset(InputIterator first, InputIterator last,
const Compare& comp = Compare(), const Allocator& = Allocator());
\end{itemdecl}
View
4 source/cover-reg.tex
@@ -8,7 +8,7 @@
\vspace{2ex}
\begin{flushright}
-\textbf{ISO/IEC JTC1 SC22 WG21 N\,\LARGE3290}
+\textbf{ISO/IEC JTC1 SC22 WG21 N\,\LARGE4141}
Date: \reldate
@@ -49,7 +49,7 @@
\vfill
\noindent
Document type: Draft International Standard\\
-Document stage: (40) Enquiry\\
+Document stage: (60) Publication\\
Document Language: E
\pagebreak
View
8 source/declarations.tex
@@ -954,14 +954,6 @@
The \tcode{constexpr} specifier has no
effect on the type of a \tcode{constexpr} function or a \tcode{constexpr} constructor. \enterexample
\begin{codeblock}
-class debug_flag {
-public:
- explicit debug_flag(bool);
- constexpr bool is_on() const; // error: \tcode{debug_flag} not
- // literal type
-private:
- bool flag;
-};
constexpr int bar(int x, int y) // OK
{ return x + y + x*y; }
// ...
View
4 source/front.tex
@@ -1,6 +1,6 @@
%!TEX root = std.tex
-\input{cover-wd}
-% \input{cover-reg}
+% \input{cover-wd}
+\input{cover-reg}
%%--------------------------------------------------
%% The table of contents, list of tables, and list of figures
View
6 source/std.tex
@@ -3,8 +3,8 @@
%%--------------------------------------------------
%% basics
-% \documentclass[letterpaper,oneside,openany]{memoir}
-\documentclass[ebook,10pt,oneside,openany,final]{memoir}
+\documentclass[letterpaper,oneside,openany,final]{memoir}
+% \documentclass[ebook,10pt,oneside,openany,final]{memoir}
% \includeonly{declarations}
\usepackage[american]
@@ -33,7 +33,7 @@
\usepackage[pdftex,
pdftitle={C++ International Standard},
pdfsubject={C++ International Standard},
- pdfcreator={Stefanus Du Toit},
+ pdfcreator={Richard Smith},
bookmarks=true,
bookmarksnumbered=true,
pdfpagelabels=true,
View
5 source/threads.tex
@@ -890,8 +890,7 @@
data between execution agents~(\ref{thread.req.lockable}).
An execution agent \term{owns} a mutex from the time it successfully calls one of the
lock functions until it calls unlock. Mutexes can be either recursive or non-recursive, and can
-grant simultaneous ownership to one or many execution agents. The mutex types supplied by the standard
-library provide exclusive ownership semantics: only one thread may own the mutex at a time. Both
+grant simultaneous ownership to one or many execution agents. Both
recursive and non-recursive mutexes are supplied.
\rSec3[thread.mutex.requirements.mutex]{Mutex types}
@@ -3506,7 +3505,7 @@
template <class R, class... ArgTypes>
class packaged_task<R(ArgTypes...)>;
- template <class R>
+ template <class R, class... ArgTypes>
void swap(packaged_task<R(ArgTypes...)>&, packaged_task<R(ArgTypes...)>&) noexcept;
template <class R, class Alloc>
View
20 source/utilities.tex
@@ -7807,7 +7807,7 @@
\indexlibrary{\idxcode{equal_to<>}}%
\begin{itemdecl}
template <> struct equal_to<void> {
- template <class T, class U> auto operator()(T&& t, U&& u) const
+ template <class T, class U> constexpr auto operator()(T&& t, U&& u) const
-> decltype(std::forward<T>(t) == std::forward<U>(u));
typedef @\unspec@ is_transparent;
@@ -7822,7 +7822,7 @@
\indexlibrary{\idxcode{not_equal_to<>}}%
\begin{itemdecl}
template <> struct not_equal_to<void> {
- template <class T, class U> auto operator()(T&& t, U&& u) const
+ template <class T, class U> constexpr auto operator()(T&& t, U&& u) const
-> decltype(std::forward<T>(t) != std::forward<U>(u));
typedef @\unspec@ is_transparent;
@@ -7837,7 +7837,7 @@
\indexlibrary{\idxcode{greater<>}}%
\begin{itemdecl}
template <> struct greater<void> {
- template <class T, class U> auto operator()(T&& t, U&& u) const
+ template <class T, class U> constexpr auto operator()(T&& t, U&& u) const
-> decltype(std::forward<T>(t) > std::forward<U>(u));
typedef @\unspec@ is_transparent;
@@ -7852,7 +7852,7 @@
\indexlibrary{\idxcode{less<>}}%
\begin{itemdecl}
template <> struct less<void> {
- template <class T, class U> auto operator()(T&& t, U&& u) const
+ template <class T, class U> constexpr auto operator()(T&& t, U&& u) const
-> decltype(std::forward<T>(t) < std::forward<U>(u));
typedef @\unspec@ is_transparent;
@@ -7867,7 +7867,7 @@
\indexlibrary{\idxcode{greater_equal<>}}%
\begin{itemdecl}
template <> struct greater_equal<void> {
- template <class T, class U> auto operator()(T&& t, U&& u) const
+ template <class T, class U> constexpr auto operator()(T&& t, U&& u) const
-> decltype(std::forward<T>(t) >= std::forward<U>(u));
typedef @\unspec@ is_transparent;
@@ -7882,7 +7882,7 @@
\indexlibrary{\idxcode{less_equal<>}}%
\begin{itemdecl}
template <> struct less_equal<void> {
- template <class T, class U> auto operator()(T&& t, U&& u) const
+ template <class T, class U> constexpr auto operator()(T&& t, U&& u) const
-> decltype(std::forward<T>(t) <= std::forward<U>(u));
typedef @\unspec@ is_transparent;
@@ -7909,7 +7909,7 @@
\indexlibrary{\idxcode{logical_and}}%
\begin{itemdecl}
template <class T = void> struct logical_and {
- bool constexpr operator()(const T& x, const T& y) const;
+ constexpr bool operator()(const T& x, const T& y) const;
typedef T first_argument_type;
typedef T second_argument_type;
typedef bool result_type;
@@ -7924,7 +7924,7 @@
\indexlibrary{\idxcode{logical_or}}%
\begin{itemdecl}
template <class T = void> struct logical_or {
- bool constexpr operator()(const T& x, const T& y) const;
+ constexpr bool operator()(const T& x, const T& y) const;
typedef T first_argument_type;
typedef T second_argument_type;
typedef bool result_type;
@@ -7939,7 +7939,7 @@
\indexlibrary{\idxcode{logical_not}}%
\begin{itemdecl}
template <class T = void> struct logical_not {
- bool constexpr operator()(const T& x) const;
+ constexpr bool operator()(const T& x) const;
typedef T argument_type;
typedef bool result_type;
};
@@ -8259,7 +8259,7 @@
\begin{itemize}
\item \tcode{FD} is the type \tcode{decay_t<F>},
\item \tcode{fd} is an lvalue of type \tcode{FD} constructed from \tcode{std::forward<F>(f)},
-\item \tcode{Ti} is the $i^{th}$ type in the template parameter back \tcode{BoundArgs},
+\item \tcode{Ti} is the $i^{th}$ type in the template parameter pack \tcode{BoundArgs},
\item \tcode{TiD} is the type \tcode{decay_t<Ti>},
\item \tcode{ti} is the $i^{th}$ argument in the function parameter pack \tcode{bound_args},
\item \tcode{tid} is an lvalue of type \tcode{TiD} constructed from \tcode{std::forward<Ti>(ti)},

No commit comments for this range

Something went wrong with that request. Please try again.