Pull to refresh

Comments 20

Ну с variadic (и всеми связанными вещами) это явно не баг, а фича, т.к. VS 2012 не поддерживала вообще variadic templates.
Я так понял имеется в виду, что в VS2012 для вышеуказанных функций были забиты шаблоны с количеством аргументов от одного до пяти, а в VS2013 они реализованы на честных variadic templates.
Правильно, но это не ошибка — наверняка они в хелпе писали про ограничение реализации.
Это было бы «не ошибка» если бы требовалось соответствие компилятора Майкрософта с документацией Майкрософта. Но требуется-то соответствие утверждённому стандарту языка С++11, а согласно нему — «какие нафиг пять аргументов, должны быть variadic templates».
Меня часто спрашивают: «На сколько баллов вы оцениваете свои знания С++ ?»
Как объяснить, что C++ меняется быстрее, чем я могу его освоить?
Приходится константировать, что чем дальше — тем хуже я знаю этот язык. Пичалька.
По мне, работая в сфере IT, нужно быть готовым постоянно учиться (не только C++ конечно :) ) Если потихоньку присматриваться к новым вещам, то они начинают постепенно проникать в практику. Писать, используя «C++ good parts» стало приятней, а при изучении с нуля можно опустить часть прежних ужасов.
опустить часть прежних ужасов

И выучить новые ужасы. Меня аж в холодный пот бросает __от_наличия::(целого* нагромождения)<ОГРОМНОЙ>(кучи[]символов) << и << СТИЛЯ_НАПИСАНИЯ;. Что, конечно, и не отрицает преимуществ языка, но еще больше заставляет задуматься: а не стоит ли поискать другой низкоуровневый язык.
Ну не хочется таскать с собой буст постоянно, при попытке иметь малейшие «удобства», которые должны поддерживаться компилятором(библиотекой) по стандарту. Например, тот fuction, который был в ::std::tr1 совсем не работал и постоянно падал с ассертами где-то внутри. И постоянно подключать буст только из-за этого — не очень приятно. Так что — молодцы — работают!
Нет вы меня не поняли.

Known Bugs with Visual Studio 2013/Visual C++ 12

Visual Studio 2013 was released quite late in the release process, so there exist several unresolved issues. These include:

— Serialization can't compile because of a missing include.

— Using has_member_function_callable_with from Boost.Container's allocator_traits causes a compile error (#9332).

— In libraries such as Unordered and MultiIndex, calling overloaded functions with initializer lists can result in a compile error, with Visual C++ claiming that the overloads are ambiguous. This is a Visual C++ bug and it isn't clear if there's a good workaround. This won't affect code that doesn't use initializer lists, or uses an initializer list that doesn't require an implicit conversion (i.e. an initializer list of the container's exact value type).

— Thread: ex_scoped_thread compile fails (#9333).
Не работает под ней буст, это да. Но вроде как студия обесчала релизы компилятора С++ вынести за рамки релизов студии, сделать чаще. Надеюсь, быстро пофиксят, потому что если не поддерживать буст — кому этот инструмент вообще нафиг сдался.
Баг, который мог приводить к утечкам памяти при завершении программы. Это случалось потому, что поток создавал, но никогда не уничтожал объект at_thread_exit_mutex


Каким образом может быть утечка памяти/ресурса после завершения процесса? WinNT всё чистит за ним. Может, имелось ввиду «при завершении потока»?
«There is a bug which could lead to memory leaks being reported on program termination.»

Это понятно, что WinNT всё чистит за процессом. Но это же не мешает программе в ходе процесса завершения поломать память и выбросить какое-нибудь дурацкое окно с сообщением об ошибке (у меня такое, бывало, случалось).

С другой стороны, я вот думаю — может быть имелось в виду, что утечки памяти происходят по ходу работы, а вот сообщения о них выдаются по завершению программы, в окне отладки (в дебаг-режиме студия такое пишет)?
Я думал, что знаю C++…

P.S. какое великое счастье, что можно успешно использовать библиотеки вроде Qt и без этого ночного кошмара.
Весь этот ночной кошмар нужен в 90% случаев разработчикам библиотек вроде Qt.
Кстати да, если посмотреть некоторые *.h-ники с магией шаблонов, то появляется настоящее уважение к авторам. Кое-где встречалась даже перегрузка оператора ","
Что-то никак нет возможности в VC++ нормально воспользоваться C++ 11. Хотел собрать один из проектов, который собираю под gcc4.8.1, а не собрался. Думал, что в 2013 можно уже воспользоваться C++ 11 в полной мере или хотя бы близкой к ней. А наступил сразу на проблему: constexpr не поддерживается…
Версии выходят, а нормальной поддержки «новых» плюсов к сожалению пока не ощутил.
Да, лично для меня из нового стандарта самые вкусные были auto, лямбды и constexpr. Первые два есть и в 2010 студии, пока не доделают последний — не вижу для себя смысла смотреть на новые компиляторы.
Столько накосячить с рациональными дробями конечно молодцы. Всегда обходился алгоритмом Евклида, работающим за логарифм min(a,b). Точности в работе с дробями могут потребоваться крайне редко, только для работы исключительно с дробями. Пренебрегать их переводом в десятичную дробь высокой точности ради удобной арифметики — это вопрос довольно проблемный. Но я ещё не встретил не одного человека, который был бы против простого: ((рац.->дес.)(+|-|*|/)(рац.->дес.))->рац. Хотя наверное тут вопрос области задачи. В каких-то вещах таким пренебрегать категорически нельзя, но дроби там и не используются я думаю.
Интереснее был бы список багов, которые не исправлены :)
Sign up to leave a comment.