А есть ли вообще смысл флашить строковый поток? С файловым всё понятно — flush гарантирует запись данных на диск. А для строкового?
Кстати, для потока обычно перегружают вывод в него функции типа void f(ostingstream&), в которой делают всё что нужно с потоком. А в операторе перегрузки просто вызывают эту функцию для текущего потока. Это позволяет писать свои собственные функции-манипуляторы.
Просто скрытие переменной ещё полбеды. А вот когда встречаешь код типа:
int i=42;
...
{
int i=i+2;
вот тут начинается самое веселье. Ибо Visual C++ считает, что во втором случае берётся значение предыдущей i, и к ней прибавляется 2, а вот GCC берёт значение второй i (ещё не инициализированной, ага).
Терминатор
Особенно сильно доставляют abort()'ы в сторонних библиотеках (увы, бывает и такое). Отладка программ с ними (молча схлопывающихся при каких-то редко воспроизводимых условиях) доставляют массу ни с чем не сравнимых эмоций (которые, правда, с трудом можно назвать положительными). Хочется взять и крепко пожать шею замечательным людям, написавшим это.
открывает наборы перегрузки для не членов и доступ для членов) (open overload sets for non-members and member access for members)
Скорее, «расширяемый список перегруженных функций для не-членов и доступ к членам класса для функций-членов».
Вопрос по ошибке в Fingering.cpp 83 (там, где unconditional break): у вас же ещё одна диагностика есть (что-то типа «код не соответствует оформлению/отступам»; не помню, к сожалению, точный текст). Она в этом месте генерируется?
А вот мне наоборот, нравится (пожалуй, единственное в этом смарте). Я всегда сую телефон в карман штанов вверх ногами. А когда втыкаю наушники, приходится, достав, крутить в руках.
lastexile.wikia.com/wiki/Prester_%28Anatoray-Disith%29
Кстати, для потока обычно перегружают вывод в него функции типа void f(ostingstream&), в которой делают всё что нужно с потоком. А в операторе перегрузки просто вызывают эту функцию для текущего потока. Это позволяет писать свои собственные функции-манипуляторы.
А тем более «ВЫканием» (с большой буквы).
Просто скрытие переменной ещё полбеды. А вот когда встречаешь код типа:
вот тут начинается самое веселье. Ибо Visual C++ считает, что во втором случае берётся значение предыдущей i, и к ней прибавляется 2, а вот GCC берёт значение второй i (ещё не инициализированной, ага).
Особенно сильно доставляют abort()'ы в сторонних библиотеках (увы, бывает и такое). Отладка программ с ними (молча схлопывающихся при каких-то редко воспроизводимых условиях) доставляют массу ни с чем не сравнимых эмоций (которые, правда, с трудом можно назвать положительными). Хочется взять и крепко пожать шею замечательным людям, написавшим это.
Скорее, «расширяемый список перегруженных функций для не-членов и доступ к членам класса для функций-членов».
А вот мне наоборот, нравится (пожалуй, единственное в этом смарте). Я всегда сую телефон в карман штанов вверх ногами. А когда втыкаю наушники, приходится, достав, крутить в руках.