| 137 | |
| 138 | template<class InputIt> |
| 139 | string_impl( |
| 140 | InputIt first, |
| 141 | InputIt last, |
| 142 | storage_ptr const& sp, |
| 143 | std::random_access_iterator_tag) |
| 144 | : string_impl(last - first, sp) |
| 145 | { |
| 146 | char* out = data(); |
| 147 | #if defined(_MSC_VER) && _MSC_VER <= 1900 |
| 148 | while( first != last ) |
| 149 | *out++ = *first++; |
| 150 | #else |
| 151 | std::copy(first, last, out); |
| 152 | #endif |
| 153 | } |
| 154 | |
| 155 | template<class InputIt> |
| 156 | string_impl( |