Тег c++

bitfield
 enum Status { offline, ..., online };
 Status GetStatus() const;

-  if (Status() == online) {
+  if (GetStatus() == online) {

Плохо быть крестоблядью под MSVC. По возможности избегайте этого.

bitfield

"Рефакторили, рефакторили, да не вырефакторили."

Поменяли тип переменной, а в одном ветке забыли вычитать -- в результате получили взрывающий мозг код

std::string val = "puk srenk";
...
val = rand() % 1000;

// случайный инт имплицитно конвертится в чар, который и приваивается строке.
шланг ворнинг дает только при -Wconversion, который ругается на assert(!"shit happend");
На

assert(!*"shit happend");
assert(false && "shit");

не ругается, но первое непривычно читать, а второе долго писать.

bitfield

В резюме кандидата

цель: Antigravity.

Делаю фидбек на тестовое -- куча минусов и ни одного плюса.
"Ах ты гравитация, бессердечная ты сука" (с)

bitfield

Нашли прекрасную багу у сотрудника, который в отпуске.

В заголовочном файле есть константа

#define BUFSIZE 8128

Приходит пакет размером 3 КБ и ... обрабатывается неверно.
Читаем код функции: буфер размером BUFSIZ, в который копируется пакет.
Стоп! Что такое BUFSIZ? Откуда оно берется?
F12 (Go to Definition) и попадаем в stdio.h:

#define BUFSIZ 512

PS. Осталось еще узнать, почему 8128, а не 8*1024=8192.

bitfield

Чтение отчетов с заседаний комитета стандартизации C++ напоминает чтение Википедии.

Начав читать статью "Собор Парижской Богоматери^W^W^W Concepts", внезапно обнаруживаешь, что читаешь статью "Бегемот^W Ranges".

ЗЫ. Интересно, intended ли pun в названии Trip Report?

bitfield
static inline constexpr const char *kFoo = "foo bar";
bitfield

http://blog.mattbierner.com...per-template-tetris/

Тетрис и змейка в компайлтайм на крестошаблонах.

bitfield

из очередного тестового задания

 void putinbeg(int a);
 void putinend(int a);
bitfield

У нас было 3 бинарника, 75 папок с исходниками, 5 плюсовых библиотек, пол-инсталла boost и целое множество ресурсов всех сортов и расцветок, а также MagicalRecord, Lumberjack и ReactiveCocoa в Podfile. Не то, чтобы это был необходимый запас для программы. Но если уже начал собирать код, становится трудно остановиться. Единственное, что вызывало у меня опасение -- это ReactiveCocoa. Нет ничего более беспомощного, безответственного и испорченного, чем функциональное реактивное программирование в Objective-C. Я знал, что рано или поздно мы перейдем и на эту дрянь.

bitfield

Увидел на rsdn "прекрасное":
класс CMoney с полем double m_Amount и оператором приведения к LPCTSTR (строковых полей в классе нет, если что)

bitfield

ошибка конь-фелляции

bitfield

ой какое мимими!
Вижуал Студия со спокойной душой скастила false в std::string

std::string SomeFunction() {
  // ...
  if (SomeCondition())
    return false;
  // ...
  return "Happy";
}

if занес сотрудник копипастой из другой функции. Увидел, когда пересобирал на маке шлангом.

bitfield

Опечатка по Карри (ну, может по Чёрчу или по Клейсли):

Реализована команада 'SetProxy'.

bitfield
bitfield

мимими 1:

The "best" example of this maintainability problem could be found in the old implementation of the printf family of functions. The CRT provides 142 different variations of printf, but most of the behavior is the same for all of the functions, so there are a set of common implementation functions that do the bulk of the work. These common implementation functions were all defined in output.c in the CRT sources(1). This 2,696 line file had 223 conditionally compiled regions of code (#ifdef, #else, etc.), over half of which were in a single 1,400 line function. This file was compiled 12 different ways to generate all of the common implementation functions.

мимими 2:

We have converted most of the CRT sources to compile as C++, enabling us to replace many ugly C idioms with simpler and more advanced C++ constructs. The publicly callable functions are still declared as C functions, of course (extern "C" in C++), so they can still be called from C. But internally we now take full advantage of the C++ language and its many useful features.

мимими 3:

Before this refactoring, the sprintf functions, which write formatted data to a character buffer, were implemented by wrapping the result buffer in a temporary FILE object and then deferring to the equivalent fprintf function.

bitfield

Да они на свет лезут!

CXXINCS =  -I"D:/Language/Dev-Cpp/lib/gcc/mingw32/3.4.2/include"
bitfield

сотрудник напоролся на красивые грабли

void func(bool b) {
  printf("bool");
}

void func(std::string s) {
  printf("string");
}

int main() {
  func("aaa");
}

И ведь знаешь, почему так, но все равно можешь сделать ошибку.

bitfield

До 2015 года осталось меньше недели, а конь-ди-даты продолжают делать тестовое в VC6.

bitfield

Герб Саттер:
int v[2] = { 0, 0 };
int i = 0;
v[i++] = i++;
Если бы мы отменили УБ, чему бы вы хотели чтобы было равно v
1. 00
2. 01
3. 10
4. unspecifed / implementation-defined

Коммент:
I voted for other "11" because I think C++ should troll it’s users more.

bitfield

bitfield:
boost hana loki mpllibs ftmp metatest fatal
я правда видел только первые три
bialix:
ты сейчас дьявола вызвать пытался?

Добавить пост

Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Для форматирования текста используется Markdown.