Автоматически для любого выглядящего как range. Как в вашем посте, где begin и end были определены. И для многих других тоже автоматически работает (всех структур, например).
Во-первых, про этот трюк с std::copy и std::ostream я узнал лет 15 назад, с тех пор использовал раза три или четыре и ни разу не в продакшене. Во-вторых, маросы -- это вы с C или Rust-ом перепутали. В C++ есть шаблоны, на которых благопристойный writeln пишется с полпинка. Только вот, как показывает история, в стандарте он пока никому не понадобился.
ну потому что "стандарт" (я не могу без кавычек писать про документ в котором сотни undefined behavior) "пишут" (в кавычках потому что хуем) пидорасы (без кавычек).
no subject
Date: 2015-10-16 07:07 am (UTC)no subject
Date: 2015-10-16 07:12 am (UTC)no subject
Date: 2015-10-16 07:26 am (UTC)И для многих других тоже автоматически работает (всех структур, например).
no subject
Date: 2015-10-16 07:33 am (UTC)no subject
Date: 2015-10-16 07:41 am (UTC)no subject
Date: 2015-10-16 07:57 am (UTC)Во-вторых, маросы -- это вы с C или Rust-ом перепутали. В C++ есть шаблоны, на которых благопристойный writeln пишется с полпинка. Только вот, как показывает история, в стандарте он пока никому не понадобился.
no subject
Date: 2015-10-16 08:30 am (UTC)no subject
Date: 2015-10-16 05:02 pm (UTC)no subject
Date: 2015-10-16 05:12 pm (UTC)no subject
Date: 2015-10-16 05:19 pm (UTC)я STL всерьез не воспринимаю
потому, что одно из двух: либо НЕЛЬЗЯ применять идеологию copy-on-assign, либо НАДО иметь smart pointer в пределах той же либы.
а так выглядит как чудовищных размеров недоделка