Да, увы. Вот и статья зи цикла: повеселиться. Вообще, задачка про a(b) показывалась куче народу на протяжении многих лет. Статистика печальная — без нулевой подсказки правильный ответ что такое a(b) дали единицы.
Да, конечно же конструктор в string не объявлен как explicit, и сам я всегда пишу равно. Но тогда бы и задачки не было. А скобочки по ошибке добавляют часто. Тем более, что:
MyClass* c1 = new MyClass(); // всё супер!
MyClass с2(); // а вот тут мы попали
Благо, в этом случае при использовании с2 будет ошибка
И точно: галки тут как дрозды в филармонии. Я отметил своё, но уж очень подмывало сказать, что как разработчик всё знаю, а как пользователь — извиняйте, впервые слышу
То же и с Qt, mozilla, многими другими проектами.
Пример довольно успешного пректа, мощно использующего фичи С++ — llvm.org Рекомендую к прочтению кода. Лучше многих книг.
Я со многим в этой статье согласен, да и сам плюсовик со стажем, но считаю, что на любом языке и любыми средствами можно написать плохой или хороший код.
У меня в примеренеправильный синтаксис — не заметил в предосмотре, что хабр выкинул угловые скобки, приняв их за таг. Вот: std::auto_ptr<MyClassWithDestructor> ptr(new MyClassWithDestructor[32]);
std::auto_ptr<char> ptrChars(new char[256]);
Я согласен с тем, что shared_* — вещь полезная, но всё-таки её надо применять тогда, когда владение объекта не определено, и он действительно «shared». К сожалению, это не garbage collector. В новом стандарте есть unique_ptr, но он реализован на ещё одной новой «фиче» — «rvalue references». Такие можно и в контейнеры класть.
Первый пример вряд ли разрушит объект правильно в деструкторе, а второй — скорее всего разрушит нормально для всех известных мне реализаций, но всё равно «это нехорошо». Причём, что прискорбно, часто мы имеем парадигму, где auto_ptr в нормальной ситуации «грабится» с помощью release(). В этом случае только при ошибках, ведущих к исключению мы имеем покоцанную память. В новой редакции стандарта использование auto_ptr не рекомендовано, но это — повод для отдельной статьи
Согласен полностью. Но ещё более согласен если не только вы их администрите. На серверах и вообще шаредных компах в руте используем bash почти в голом виде, с минимумом алиасов. И вим гол как сокол. В таких вещах чем стандартнее тем лучше (про судо знаю, но у нас всё равно рут для админов — причины есть). А в скриптах, конечно, первой строкой — банг-баш.
Начать лучше с малого — положите в гит свои личные файлы. Добавится только ОДНА дирка .git — и никаких кишок.
Потом уже реальные проекты, бранчи-кранчи.
«Так что если вкратце, то на Symbian и Qt ожидается много интересного»… «Nokia и Microsoft разделяют видение и намерение произвести переход для разработчиков настолько мягко, насколько возможно.»
Благо, в этом случае при использовании с2 будет ошибка
google-styleguide.googlecode.com/svn/trunk/cppguide.xml
То же и с Qt, mozilla, многими другими проектами.
Пример довольно успешного пректа, мощно использующего фичи С++ — llvm.org
Рекомендую к прочтению кода. Лучше многих книг.
Вот его известное письмо:
thread.gmane.org/gmane.comp.version-control.git/57643/focus=57918
Я со многим в этой статье согласен, да и сам плюсовик со стажем, но считаю, что на любом языке и любыми средствами можно написать плохой или хороший код.
std::auto_ptr<MyClassWithDestructor> ptr(new MyClassWithDestructor[32]);
std::auto_ptr<char> ptrChars(new char[256]);
std::auto_ptr ptr(new MyClassWithDestructor[32]);
std::auto_ptr ptrChars(new char[256]);
Первый пример вряд ли разрушит объект правильно в деструкторе, а второй — скорее всего разрушит нормально для всех известных мне реализаций, но всё равно «это нехорошо». Причём, что прискорбно, часто мы имеем парадигму, где auto_ptr в нормальной ситуации «грабится» с помощью release(). В этом случае только при ошибках, ведущих к исключению мы имеем покоцанную память. В новой редакции стандарта использование auto_ptr не рекомендовано, но это — повод для отдельной статьи
Потом уже реальные проекты, бранчи-кранчи.
Много интересного. Побежали.
Оставьте нам Qt, QtCreator, Maemo,…
— самоорганизующийся распределённый поисковик
— самоорганизующиаяся распределённая социальная сеть
— чтобы торренты не банили