43 #include "rsc/rscexports.h" 62 const string& separator =
", ",
63 const string& close_brace =
")");
85 const string& first_separator =
"",
86 const string& last_separator =
"");
108 const string& close);
120 template<
typename Ch,
typename Tr,
typename T>
121 basic_ostream<Ch, Tr>&
122 operator<<(basic_ostream<Ch, Tr>& stream,
126 delete reinterpret_cast<detail::pair_style*> (stream.pword(
143 template<
typename Ch,
typename Tr,
typename T>
144 basic_ostream<Ch, Tr>&
145 operator<<(basic_ostream<Ch, Tr>& stream,
149 delete reinterpret_cast<detail::element_sequence_style*> (stream.pword(
162 const string& first_separator =
"",
163 const string& last_separator =
"");
170 template<
typename Ch,
typename Tr,
typename T>
171 basic_ostream<Ch, Tr>&
172 operator<<(basic_ostream<Ch, Tr>& stream,
176 delete reinterpret_cast<detail::container_style*> (stream.pword(
197 template<
typename Ch,
typename Tr,
typename R,
typename S>
198 basic_ostream<Ch, Tr>&
199 operator<<(basic_ostream<Ch, Tr>& stream,
const pair<R, S>& pair) {
203 stream << pair_default;
216 template<
typename Ch,
typename Tr,
typename T>
217 basic_ostream<Ch, Tr>&
218 operator<<(basic_ostream<Ch, Tr>& stream,
const vector<T>& container) {
219 typedef vector<T> container_type;
220 typedef typename container_type::value_type value_type;
223 stream << element_sequence_singleline;
233 : container_hash.value);
235 stream << container_style.
open;
236 if (container.size() >= 1) {
238 copy(container.begin(), container.end() - 1,
239 ostream_iterator<value_type>(stream,
240 element_sequence_style.
separator.c_str()));
241 stream << container.back();
244 stream << container_style.
close;
248 template<
typename Ch,
typename Tr,
typename T>
249 basic_ostream<Ch, Tr>&
250 operator<<(basic_ostream<Ch, Tr>& stream,
const deque<T>& container) {
251 typedef vector<T> container_type;
252 typedef typename container_type::value_type value_type;
255 stream << element_sequence_singleline;
265 : container_d.value);
267 stream << container_style.
open;
268 if (container.size() >= 1) {
270 copy(container.begin(), container.end() - 1,
271 ostream_iterator<value_type>(stream,
272 element_sequence_style.
separator.c_str()));
273 stream << container.back();
276 stream << container_style.
close;
280 template<
typename Ch,
typename Tr,
typename T>
281 basic_ostream<Ch, Tr>&
282 operator<<(basic_ostream<Ch, Tr>& stream,
const list<T>& container) {
283 typedef list<T> container_type;
284 typedef typename container_type::value_type value_type;
287 stream << element_sequence_singleline;
297 : container_brackets.value);
299 stream << container_style.
open;
300 if (container.size() >= 1) {
302 copy(container.begin(), --container.end(),
303 ostream_iterator<value_type>(stream,
304 element_sequence_style.
separator.c_str()));
305 stream << container.back();
308 stream << container_style.
close;
312 template<
typename Ch,
typename Tr,
typename T>
313 basic_ostream<Ch, Tr>&
314 operator<<(basic_ostream<Ch, Tr>& stream,
const set<T>& container) {
315 typedef set<T> container_type;
316 typedef typename container_type::value_type value_type;
319 stream << element_sequence_singleline;
329 : container_braces.value);
331 stream << container_style.
open;
332 if (container.size() >= 1) {
334 copy(++container.begin(), container.end(),
335 ostream_iterator<value_type>(stream,
336 element_sequence_style.
separator.c_str()));
337 stream << *container.begin();
340 stream << container_style.
close;
344 template<
typename Ch,
typename Tr,
typename R,
typename S>
345 basic_ostream<Ch, Tr>&
346 operator<<(basic_ostream<Ch, Tr>& stream,
const map<R, S>& container) {
347 typedef map<R, S> container_type;
350 stream << element_sequence_singleline;
360 : container_braces.value);
362 stream << container_style.
open;
364 for (
typename container_type::const_iterator it = container.begin(); it
365 != container.end();) {
367 if (++it != container.end())
368 stream << element_sequence_style.
separator;
371 stream << container_style.
close;
375 template<
typename Ch,
typename Tr,
typename R,
typename S>
376 basic_ostream<Ch, Tr>&
377 operator<<(basic_ostream<Ch, Tr>& stream,
const multimap<R, S>& container) {
378 typedef multimap<R, S> container_type;
381 stream << element_sequence_singleline;
391 : container_braces.value);
393 stream << container_style.
open;
395 for (
typename container_type::const_iterator it = container.begin(); it
396 != container.end();) {
398 if (++it != container.end())
399 stream << element_sequence_style.
separator;
402 stream << container_style.
close;
406 template<
typename Ch,
typename Tr,
typename T>
407 basic_ostream<Ch, Tr>&
408 operator<<(basic_ostream<Ch, Tr>& stream,
const valarray<T>& container) {
410 stream << element_sequence_singleline;
420 : container_parentheses.value);
422 stream << container_style.
open;
424 for (
unsigned int i = 0; i != container.size(); ++i) {
425 stream << container[i];
426 if (i != container.size() - 1)
427 stream << element_sequence_style.
separator;
430 stream << container_style.
close;
const detail::set_container_style< detail::container_style > container_hash
const detail::set_container_style< detail::container_style > container_braces
detail::set_element_sequence_style< detail::element_sequence_style > element_sequence(const string &separator, const string &first_separator, const string &last_separator)
const detail::set_container_style< detail::container_style > container_d
const detail::set_container_style< detail::container_style > container_brackets
const detail::set_element_sequence_style< detail::element_sequence_style > element_sequence_multiline
void container_style_delete(ios_base::event event_, ios_base &stream, int)
void pair_style_delete(ios_base::event event_, ios_base &stream, int)
const detail::set_element_sequence_style< detail::element_sequence_style > element_sequence_singleline
const detail::set_pair_style< detail::pair_style > pair_default
static const int stream_storage
const detail::set_pair_style< detail::pair_style > pair_whitespace
const detail::set_container_style< detail::container_style > container_none
static const int stream_storage
static const int stream_storage
const detail::set_container_style< detail::container_style > container_parentheses
void element_sequence_style_delete(ios_base::event event_, ios_base &stream, int)