From Jason Turner

[istream.iterator.cons]

Diff to HTML by rtfpessoa

tmp/tmp_xu8spmx/{from.md → to.md} RENAMED
@@ -20,17 +20,21 @@ istream_iterator(istream_type& s);
20
 
21
  *Effects:* Initializes `in_stream` with `addressof(s)`,
22
  value-initializes `value`, and then calls `operator++()`.
23
 
24
  ``` cpp
25
- istream_iterator(const istream_iterator& x) = default;
26
  ```
27
 
28
- *Ensures:* `in_stream == x.in_stream` is `true`.
 
29
 
30
- *Remarks:* If `is_trivially_copy_constructible_v<T>` is `true`, then
31
- this constructor is trivial.
 
 
 
32
 
33
  ``` cpp
34
  ~istream_iterator() = default;
35
  ```
36
 
 
20
 
21
  *Effects:* Initializes `in_stream` with `addressof(s)`,
22
  value-initializes `value`, and then calls `operator++()`.
23
 
24
  ``` cpp
25
+ constexpr istream_iterator(const istream_iterator& x) noexcept(see below);
26
  ```
27
 
28
+ *Effects:* Initializes `in_stream` with `x.in_stream` and initializes
29
+ `value` with `x.value`.
30
 
31
+ *Remarks:* An invocation of this constructor may be used in a core
32
+ constant expression if and only if the initialization of `value` from
33
+ `x.value` is a constant subexpression [[defns.const.subexpr]]. The
34
+ exception specification is equivalent to
35
+ `is_nothrow_copy_constructible_v<T>`.
36
 
37
  ``` cpp
38
  ~istream_iterator() = default;
39
  ```
40