Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
void RoostreamPorkser::handle(char c)
{
switch (m_state) {
case State0:
State0:
if (isdigit(c)) {
m_number = 0;
m_state = StateNumber;
goto StateNumber;
} else if (isalpha(c)) {
m_word = "";
m_state = StateWord;
goto StateWord;
}
break;
case StateNumber:
StateNumber:
if (isdigit(c)) {
m_number = m_number * 10 + c - '0';
} else {
handleNumber(m_number);
m_state = State0;
goto State0;
}
break;
case StateWord:
StateWord:
if (isalpha(c)) {
m_word += tolower(c);
} else {
handleWord(m_word);
m_state = State0;
goto State0;
}
break;
/*
// Или лучше так
case StateNumber:
if (!isdigit(c)) {
handleNumber(m_number);
m_state = State0;
goto State0;
}
StateNumber:
m_number = m_number * 10 + c - '0';
break;
*/
}
}
Например, задача: есть поток символов, в нем встречаются числа и слова, которые нужно обработать (прочие символы игнорируются).
Не говно или всё-таки goto(с)?
Перепиши на Java?
Меня больше не торкает C++
В попытках не потерять ясность ума и рассудка я вернулся к своему любимому делу, но какого же было моё удивление, когда я обнаружил что более не наслаждаюсь процессом.
Ни страсти, ни истощения. Ничего. Процесс ничем не отличается от простого втыкания в красиво подсвеченные буквы IDE и блокнотов.
Возможно я слишком долго не принимался за код, возможно пока я боролся со своими зависимостями я убил и эту,
возможно дело в том что я более не на Linux, возможно мои эмоции выгорели и осталась лишь одна материальная сущность,
не движимая ни в какой мере иррациональной мотивацией, или настолько сильно предаюсь эмоциям в других сферах, что не хватает на C++, теряюсь в догадках.
Меня это волнует. Я который день не могу собраться с мыслями, наслаждаться жизнью. Я практически потерял наслаждение от
огромной части себя, от той части, что определяла меня таким какой я есть, что сделала меня воистину свободной, позволявшей уходить от реальности и глупостей.
Я изменился, я потерял контроль, люди более не могут меня выносить из-за того что я выкладываю им сотни слов с тысячами смыслов за минимальное время практически скороговоркой.
qml-like структура в compile time
Стандартизаторы всё пытались запретить шаблоны в локальных классах, да не вышло - понаоставляли дыр в лямбдах и decltype.
Если добавить -fpermissive, то gcc сожрёт даже с constexpr
// Example program
#include <iostream>
#include <string>
class base_t
{
int x;
};
class pirv_derived_t : private base_t
{};
int main()
{
base_t* pd = new pirv_derived_t;
delete pd;
return 0;
}
main.cpp:15:18: error: cannot cast 'pirv_derived_t' to its private base class 'base_t'
base_t* pd = new pirv_derived_t;
А почему так? Как это вписывается в филосфию языка (парадигму ООП)?
// Example program
#include <iostream>
#include <string>
class base_t
{
int x;
};
class pirv_derived_t : private base_t
{};
int main()
{
base_t* pd = new pirv_derived_t;
delete pd;
return 0;
}
main.cpp:15:18: error: cannot cast 'pirv_derived_t' to its private base class 'base_t'
base_t* pd = new pirv_derived_t;
А почему так? Как это вписывается в филосфию языка (парадигму ООП)?
// Example program
#include <iostream>
#include <string>
class base_t
{
int x;
};
class pirv_derived_t : private base_t
{};
int main()
{
base_t* pd = new pirv_derived_t;
delete pd;
return 0;
}
main.cpp:15:18: error: cannot cast 'pirv_derived_t' to its private base class 'base_t'
base_t* pd = new pirv_derived_t;
А почему так? Как это вписывается в филосфию языка (парадигму ООП)?