М.Двач / Программирование

Этого треда уже нет.
Это копия, сохраненная 17 июля 2015 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

1311 Кб, 2702x1886

C++ тред sage 02 Июн, 04:53 #489539 В конец треда | Веб

Вопросу по синтаксису идут на хуй.
Лабы идут на хуй.
"Как мне сделать Х на чистых крестах без библиотек" идут на хуй.
Все идут на хуй.
Хейтер сосет члены на пару со своей мамашей.

Тег [code] работает через жабаскрипт-костыль: https://github.com/ololoepepe/MakabaCode

Предыдущий: >>478556

Ответы: >>489585, >>493138, >>501560, >>502357

sage 02 Июн, 09:32 #2 #489585

>>489539
Какой ты дерзкий, нахуй пойди

Ответы: >>489633

6 Кб, 150x150

02 Июн, 10:41 #3 #489633

>>489585
Ты ведь прочитал, что делает хейтер?

Ответы: >>489654

sage 02 Июн, 11:22 #4 #489654

>>489633
Как он прочитает, ему небритая мошонка обзор загораживает.

sage 02 Июн, 12:25 #5 #489716

Есть такая порода людей, которая считает, что каждый, кто на что-то претендует, просто обязан хлебнуть говна. Например, "настоящий мужчина" обязан сходить в армию или отсидеть в тюрьме, ведь что тюрьма, что армия - школа жизни; "настоящий программист" обязан писать на крестах, ПХП или тому подобном, ведь сами они на нём писали, а кто не хапнул этого говна, тот и не программист вовсе. С одной стороны понять их можно - механизм примерно такой же как у дедовщины в уже упомянутой армии или прописки на малолетке ("меня опускали, теперь я буду опускать" - ну просто обучение и сделование паттерну, через пиздюли навязанному авторитетом, детская психика так устроена), с другой - сами они со временем так нихуя и не понимают, и любые попытки объяснить им, что все эти боль и унижения, через которые они прошли, в общем-то лишние, встречают у них агрессию и отрицание.

Ответы: >>489779, >>489800

sage 02 Июн, 13:40 #6 #489779

>>489716
Выводы у тебя правильные, а вот исходные данные - нет.

02 Июн, 14:15 #7 #489800

>>489716
Сферический программист в вакууме может сидеть под ДОС и писать программы на прологе.

Ответы: >>489816

02 Июн, 14:37 #8 #489816

>>489800
пролог — это абсолютный сферический кавай в вакууме

02 Июн, 16:13 #9 #489883

Анон, а можно как-нибудь перегрузить шаблон функции только для стандартных типов? К примеру, есть функция
template <class T>
T sum(T a,T b);
я хочу, чтобы она была перегружена только для стандартных типов (int, float,...), а для классов определенных пользователем требовалась принудительная типизация?

Ответы: >>489899, >>489907, >>490054, >>491874, >>492590

02 Июн, 16:24 #10 #489899

>>489883
Ставить по дефолту какой-нибудь static_assert. А всё остальное определить частичной специализацией.
Попробуй глянуть Александруску, наверняка найдёшь нужную инфу.

Ответы: >>489907, >>489943

02 Июн, 16:32 #11 #489907

>>489883
>>489899

Хуйню спизданул. В данном случае не нужно ничего усложнять. Сгодится и следующий вариант:

template<class T>
T sum(const T &lhs, const &T rhs)
{ return lhs + rhs; }

Ответы: >>489941

02 Июн, 17:02 #12 #489941

>>489907
Это не то, тут шаблон распространяется на все классы. Я хочу, чтоб работало:
int a,b;
sum(a,b);
а в этом случае компилятор выдавал ошибку:
myclass c,d;
sum(c,d);

Ответы: >>489957, >>490079

02 Июн, 17:04 #13 #489943

>>489899
что за александруска? не гуглится

Ответы: >>489947, >>489957

02 Июн, 17:09 #14 #489947

>>489943
Александреску (румын)

sage sage sage 02 Июн, 17:09 #15 #489948

sage

02 Июн, 17:16 #16 #489957

>>489943
Вот эта книжка:
http://www.ozon.ru/context/detail/id/3829080/

>>489941
Первое, что приходит на ум, простыня следующих конструкций:
static_assert(std::is_same<T, int>::value)
static_assert(std::is_same<T, float>::value)
... etc
http://ideone.com/9JG8Pi

Теперь вот тоже интересно, можно ли эту простыню реализовать более элегантно.

Ответы: >>490015

02 Июн, 18:24 #17 #490015

>>489957
Так проще:
http://en.cppreference.com/w/cpp/types/is_arithmetic

Ответы: >>490020

02 Июн, 18:26 #18 #490020

>>490015
Да, еще надо делать std::remove_reference

sage 02 Июн, 19:05 #19 #490052

Уже который раз я пытаюсь написать что-то используя Qt и уже в который раз он доказывает мне свою бесполезность. На этот раз САМЫЙ ОБЫЧНЫЙ QSystemTrayIcon какого-то хуя не выдает сигнал activated. Точнее он его выдает уже после того, как я вызываю QApplication::exit(0).
Код предельно прост.
[code lang="cpp"]
MainWindow::MainWindow(QApplication app) : QMainWindow(), mApplication(app)
{
systemTrayMenu = new QMenu();
QAction quitAction = systemTrayMenu->addAction(tr("Quit"));
connect(quitAction, SIGNAL(triggered(bool)), this, SLOT(onQuit(bool)));

sysTrayIcon = new QSystemTrayIcon(QIcon(":icons/icon.png"));
sysTrayIcon->setContextMenu(systemTrayMenu);
sysTrayIcon->show();
connect(sysTrayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(onSysTrayActivation(QSystemTrayIcon::ActivationReason)));
}

void MainWindow::onSysTrayActivation(QSystemTrayIcon::ActivationReason reason)
{
std::cout << reason << "\n";
}

void MainWindow::onQuit(bool)
{
mApplication->exit(0);
}
[/code]

Ответы: >>490060

02 Июн, 19:06 #20 #490054

>>489883
https://ideone.com/5lG6SC

sage 02 Июн, 19:13 #21 #490060

>>490052
И даже еще тривиальнее
[code lang="cpp"]
MainWindow::MainWindow(QWidget parent) : QMainWindow(parent)
{
systemTrayMenu = new QMenu();
QAction quitAction = systemTrayMenu->addAction(tr("Quit"));
connect(quitAction, SIGNAL(triggered(bool)), this, SLOT(close()));

sysTrayIcon = new QSystemTrayIcon(QIcon(":icons/icon.png"));
sysTrayIcon->setContextMenu(systemTrayMenu);
sysTrayIcon->show();
connect(sysTrayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(onSysTrayActivation(QSystemTrayIcon::ActivationReason)));
}

void MainWindow::onSysTrayActivation(QSystemTrayIcon::ActivationReason reason)
{
std::cout << reason << "\n";
}
[/code] Все равно вывод в консоль ВСЕХ произошедших эвентов activated происходит ПОСЛЕ закрытия окна.

Ответы: >>490067

02 Июн, 19:20 #22 #490062

Анон, вот смари какая штука. Мне надо сделать джва класса объектных пулов, в одном хранятся объекты, у которых конструктор принимает джва значения, а в другом - те же два, и плюс еще одно новое. Соответственно, конструкторы самих пулов тоже должны принимать эти значения, сохранять у себя и потом пихать во все создаваемые объекты. Примерно так все это выглядит:

[code lang="cpp"]
class FirstClass
{
public:
\tFirstClass (SomeClass & a, AnotherClass & b);
};

class SecondClass
{
public:
\tSecondClass (SomeClass & a, AnotherClass & b, YobaClass & c);
};

class FirstPool
{
\tstd::list <FirstClass > Objects;
\tSomeClass aa;
\tAnotherClass bb;
\t
public:
\tFirstPool (SomeClass & a, AnotherClass & b) :
\t\taa (a), bb (b)
\t{}
};

class SecondPool
{
\tstd::list <SecondClass > Objects;
\tSomeClass aa;
\tAnotherClass bb;
\tYobaClass cc;
\t
public:
\tSecondPool (SomeClass & a, AnotherClass & b, YobaClass & c) :
\t\taa (a), bb (b), cc (c)
\t{}
};
[/code]

Я хочу сделать красиво, шоб DRY соблюдалось, и сделать для них общий шаблон. Но тут возникают проблемы:

1. Хранить cc в инстанцированном шаблоне-аналоге FirstPool это дикость, ибо жертвуется производительность в рантайме в угоду удобству компиляции. Как сделать, чтобы член cc инстанцировался только вручную для одного из параметров шаблона? И можно ли это вообще сделать? Пробовал писать что-то в духе YobaClass TemplatePool <SecondClass>::cc при объявлении члена, тогда конструктор считает YobaClass TemplatePool <SecondClass>:: именем класса и не хочет их присваивать.

2. На самом деле, помимо параметра шаблона, который определяет, будет внутри FirstClass или SecondClass, есть еще параметр, совпадающий с AnotherClass, он просто передается во все конструкторы. Если я вручную инстанцирую конструктор шаблона по обоим параметрам, то все заебись. Но мне-то нужно указать различные реализации только для первого параметра, а AnotherClass трогать не нужно, он может быть каким угодно. А когда я пытаюсь инстанцировать конструктор новым шаблоном уже с одним параметром, при сборке пишет, что шаблон конструктора уже определен. Как совладать с этим дерьмом, анон?

Ответы: >>490084, >>490098

sage 02 Июн, 19:25 #23 #490067

>>490060
Вот тут полный код. На шинде он не выводит ничего до тех пор, пока не нажмешь Quit в меню tray.
http://rghost.ru/6QpfgSsY2

Ответы: >>490076, >>490114

sage 02 Июн, 19:39 #24 #490076

>>490067
Просто ты дауненок. Замени std::cout на qDebug() и поймешь, что это отсос стандартной библиотеки, а не Qt.

Ответы: >>490114

02 Июн, 19:42 #25 #490079

>>489941
Самое общее и страшное решение на проверку входных типов:
https://ideone.com/7vRWlH

Ответы: >>490132

02 Июн, 19:50 #26 #490084

>>490062
Наследуй второй пул от первого.

Ответы: >>490089

02 Июн, 19:58 #27 #490089

>>490084
Не, так не получится, у них же разные структуры данных внутри списки из объектов разных классов. Если я наследую второй от первого, то во втором будет лишний список, жраться дохуя будет. А если я, например, наследую оба от абстрактного класса, то реализации методов все равно в каждом будут разные, и никакого выигрыша в сокращении кода не будет.

Ответы: >>490115

02 Июн, 20:12 #28 #490098

>>490062
Что-то страшное ты написал. Я не понял. Почему бы не написать самый общий пул объектов с variadic template и потом трахаться с его частичной специализацией?

Ответы: >>490118

02 Июн, 20:55 #29 #490114

>>490076
this

>>490067
норкоман, ты зачем '\n' хуячишь?

http://en.cppreference.com/w/cpp/io/manip/endl
>Inserts a newline character into the output sequence os and flushes it as if by calling os.put(os.widen('\n')) followed by os.flush().

и как тебе уже сказали, юзай qDebug(), он автоматом перевод строки хуячит в конец

02 Июн, 20:57 #30 #490115

>>490089
Такое не взлетит?
http://ideone.com/nInyl9

Ответы: >>490121

02 Июн, 21:03 #31 #490118

>>490098
Так ведь мне тут не надо переменное количество параметров шаблона. Переменное количество только параметров у конструктора должно быть, причем, сколько их два или три - просто зависит от одного из параметров шаблона, а не от их количества. Или я не понял тебя просто. Что ты предлагаешь совать в список типов для variadic template?

Ответы: >>490120

02 Июн, 21:11 #32 #490120

>>490118
Предагаю в список аргументов к шаблону пихать тип пуляемого объекта и типы параметров, которые уйдут конструктору при создании объектов.
Набросал на коленке примерную реализацию:
http://pastebin.com/aZUsynrQ

Ответы: >>490128

02 Июн, 21:12 #33 #490121

>>490115
Ох лол, это 10 из 10 просто. Грязный хак с точки зрения логического разбиения, но как изящно-то, блядь!

02 Июн, 21:30 #34 #490128

>>490120
>CtorArgs... args
Лол, я чота не встречал такого. Это 11 стандарт или 14? Тащемта, выглядит охуенно, но я не уверен, что VC++ это переварит, даже последняя.

Ответы: >>490132

02 Июн, 21:32 #35 #490132

>>490128
C++11, сейчас проверю. TypeLists >>490079 здесь моё спермоподелие 2013 года выпуска переварило.

Ответы: >>490136, >>490146

02 Июн, 21:38 #36 #490136

>>490132
Ну тогда добра тебе, няша, сейчас попробую. Предыдущему куну с наследуемыми шаблонами тоже добра, я бы, наверное, в итоге что-то типа такого стал делать, но модно-молодежно с функторами и вариадиками выглядит интереснее, лол.

Ответы: >>490145, >>490146

02 Июн, 22:06 #37 #490145

>>490136
Сперма проглотила, ideone тоже:
http://ideone.com/TC7GJt

Дело за малым: сделать синглтоном и потокобезопасным.

Ответы: >>490146, >>490162

02 Июн, 22:10 #38 #490146

>>490132
>>490136
>>490145
блджад. где вы берете инфу по новым стандартам, ее ж нихуя в учебниках нет? я только книжку уильямса нашел, но там кроме многопоточности все хуйня. а читать напрямую стандарты или cppreference это пиздец просто

Ответы: >>490147, >>490159

02 Июн, 22:13 #39 #490147

>>490146
А куда деваться? Приходится курить инфу на ангельском, иначе ничего не узнать. Статьи на хабрах по C++11 неплохо так описывают новый стандарт. Ещё стоит выкурить книжку Майерса:
http://shop.oreilly.com/product/0636920033707.do

Статьи по фотонике – вот это самый страшный пиздец, после этого говна бояться нечего.

02 Июн, 22:52 #40 #490159

>>490146
>где вы берете инфу по новым стандартам, ее ж нихуя в учебниках нет?
В вики статью прочитай, там все нововведения перечислены же. Потом уже предметно по каждому пункту разбирайся. Олсо, перед выходом стандарта и сразу после каждый день какой-нибудь хуй в своем бложике расписывал за лямбды и rvalue references. Ты реддиты читаешь, хэкир ньюс?

Ответы: >>490197

02 Июн, 23:01 #41 #490162

>>490145
Ну я уже разобрался и реализовал, да. Потокобезопасность у меня сразу была прикручена, а синглтон не вписывается в концепцию, масштабируемость и все дела, типа может быть несколько однотипных инстансов пула, в которых объекты отличаются только по служебным данным. Но это детали уже, а тебе спасибо еще раз.

Алсо, мне кажется, добавлять новые объекты с фронта таки хуже, ибо в некоторых случаях, если работать будут только несколько задних объектов в списке, скорость может улучшиться за счет кэширования. Но зато так получается по-коммунистически, работают все, лол.

02 Июн, 23:50 #42 #490197

>>490159
>В вики статью прочитай, там все нововведения перечислены же.
this

>какой-нибудь хуй в своем бложике расписывал
this

03 Июн, 12:26 #43 #490402

Плюсаны у меня в понедельник собеседование на должность джуна в геймдеве. Знаете какие-то особые вопросы на собеседование с учетом специфик?

Ответы: >>490428, >>490493

03 Июн, 13:17 #44 #490428

>>490402
Хуй знает, загляни в /gd/. Как пройдёшь собеседование, отпишись.
Семинароход, это ты?

Ответы: >>490435

03 Июн, 13:24 #45 #490435

>>490428
Ноуп.

03 Июн, 15:15 #46 #490483

Крестопетухи должны страдать.

Ответы: >>490484, >>490495

03 Июн, 15:17 #47 #490484

>>490483
Тут порой так скучно, что я готов тебя выслушать.

03 Июн, 15:42 #48 #490493

>>490402
Что-то сайт залип
http://blog.gamedeff.com/?p=64

sage 03 Июн, 15:45 #49 #490495

>>490483
Ты сам то кем будешь, сын собаки?

Ответы: >>490545

03 Июн, 17:38 #50 #490545

>>490495
Я буду космонавтом.

Ответы: >>490574

sage 03 Июн, 18:07 #51 #490574

>>490545
Космоса не существует, его выдумали жиды чтобы сбивать людей с пути истинного. Земля плоская, а звезды, луна и солнце закреплены на небе, которое суть есть хрустальная полусфера.

03 Июн, 19:24 #52 #490645

Как в няшном кьюте из объявления в хэдере автоматически создавать методы с пустым телом в одноименном cpp файле?

Ответы: >>490647, >>490695

83 Кб, 1040x500

sage 03 Июн, 19:28 #53 #490647

>>490645
Это?

Ответы: >>490729

03 Июн, 20:54 #54 #490695

>>490645
alt+enter

03 Июн, 22:03 #55 #490729

>>490647
russisch schwein

Ответы: >>490812

03 Июн, 23:13 #56 #490760

for(int i=0; i<rowNum; i++)
{
delete Matrix[];
}
delete Matrix[];

верно ли очищаю 2мерный массив?

есть ли сахар, позволяющий генерировать и удалять такие массивы без нагромождения циклов (без библиотеки, мне надо именно так).

Ответы: >>490762, >>490767, >>490770, >>490771, >>490789

7 Кб, 282x156

03 Июн, 23:15 #57 #490762

>>490760
ненависть

Ответы: >>490783

03 Июн, 23:51 #58 #490766

в шаблоне использую
Result=T();
для придания Result нулевого значения переменной.
Есть ли в общем случае требование, что безаргументный конструктор должен возвращать ноль для исчислимых классов (числа, векторы, и т д)?

Ответы: >>490768, >>490771

03 Июн, 23:59 #59 #490767

>>490760
>есть ли
все есть, если погуглить хорошо

04 Июн, 00:05 #60 #490768

>>490766
>C++
>безаргументный конструктор должен возвращать ноль
Конечно есть, но тогда конструктор не должен использоваться в качестве делителя.

sage 04 Июн, 00:14 #61 #490770

>>490760
Посмотри как в glm делается и спизди.
http://glm.g-truc.net/0.9.2/api/a00124_source.html

04 Июн, 00:15 #62 #490771

>>490760
std::vector / std::array — это уже тут платина нахуй

>>490766
http://stackoverflow.com/questions/2417065/does-the-default-constructor-initialize-built-in-types

04 Июн, 00:52 #63 #490783

>>490762
Зачем так делать?
Не лучше ли сделать так:
class Mat4
{
private:
vec4 v[4];
}
Удобнее.

04 Июн, 01:35 #64 #490789

>>490760
>верно ли очищаю 2мерный массив?
У тебя не двумерный массив, а массив массивов. Не проще ли выделять память N x M и переопределить оператор индексации, чем для каждой строки выделять память?

Ответы: >>490912

sage 04 Июн, 04:33 #65 #490812

>>490729
Чеблять? Таблетки прими.

04 Июн, 12:53 #66 #490912

>>490789
>У тебя не двумерный массив, а массив массивов
А в чем отличие?

Ответы: >>490953

04 Июн, 15:02 #67 #490953

>>490912
Массив массивов расходует память на хранение ненужных указателей. Двумерный массив M x N элементов размером S занимает ровно M x N x S памяти, и не байтом больше.

Ответы: >>490955

04 Июн, 15:03 #68 #490954

Сук, весь тред в вопросах про массивы и указатели.

04 Июн, 15:07 #69 #490955

>>490953
Спасибо, я совсем не сишник. ПРосто увидел в треде твой ответ

04 Июн, 17:29 #70 #491060

Аноны, как в winform считывать в string записывать ^string?
Или может есть другая возможность создать массив строк без string?

04 Июн, 17:37 #71 #491069

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

Ответы: >>491074, >>491187

04 Июн, 17:40 #72 #491074

>>491069
>биг дату
Нет.
Сайнсы все в фп

Ответы: >>491535

04 Июн, 19:56 #73 #491187

>>491069
Нету. Лучше Python и R

05 Июн, 10:00 #74 #491535

>>491074
Можно и фп в крестах замутить.

Ответы: >>491544

05 Июн, 10:33 #75 #491540

Аноны, сижу я такой, по учебнику ваш C++ учу, а задач там нет. Подкиньте сайтов с задачами или что-то в этом роде.

Ответы: >>491610, >>491637, >>491668

05 Июн, 10:44 #76 #491544

>>491535
Можно, но зачем микроскопом гвозди забивать?

05 Июн, 11:23 #77 #491559

Хочу нормальный графический интерфейс к GDB, чтобы подключиться удалённо. QtCreator адово тупит, использовать gdb в терминале неудобно тем, что нельзя переключиться по хистори (или можно?). DDD неплох, но его внешний вид заставляет желать развидеть его.

Ответы: >>491569

05 Июн, 11:42 #78 #491569

>>491559
https://sourceware.org/gdb/onlinedocs/gdb/TUI.html

595 Кб, 1450x1080

sage 05 Июн, 13:10 #79 #491610

>>491540
Напиши борду на крестах. Я написал и недавно у меня обострилось ГТР. Совпадение?

Ответы: >>491641, >>491673, >>491707

05 Июн, 13:51 #80 #491637

>>491540
http://acm.timus.ru/

05 Июн, 13:58 #81 #491641

>>491610
Чому рейкастер вольфенштейна красненький? Я его в 14 лет написал на паскале за три дня. Это не 87, где надо вилкой говно ковырять.

Ответы: >>491663, >>491665, >>491722

05 Июн, 14:23 #82 #491663

>>491641
> три дня
это красный уровень, чо.
а если 87 30 дней займет, то это тоже красный.

Ответы: >>491693

sage 05 Июн, 14:25 #83 #491665

>>491641
Не ебу, пик не мой, я его даже не читал.

05 Июн, 14:28 #84 #491668

>>491540
Если до этого никогда не программировал, то решай простые алгоритмические задачи. Диаграмму Вороного для быстрого поиска ближайшего соседа построй, например.

05 Июн, 14:32 #85 #491673

>>491610
а какая структура бд у борды? сообщения, как я понимаю, - это одна большая куча, а треды? как связывать треды с сообщениями?

Ответы: >>491736

05 Июн, 14:57 #86 #491693

>>491663
>это красный уровень, чо
В 14 лет без интернета - красный. Сейчас я его не напрягаясь за вечер напишу.

Ответы: >>491718

05 Июн, 15:21 #87 #491707

>>491610
Такое чувство, будто меня сейчас обоссут и выебут, но что такое "кресты"? Я полный нуфак.

Ответы: >>491726, >>491737

05 Июн, 15:27 #88 #491718

>>491693
в том числе и потому, что ты его уже писал:)

05 Июн, 15:31 #89 #491722

>>491641
Верхний правый угол. Надпись маленьким шрифтом.

05 Июн, 15:35 #90 #491726

>>491707
Cross-compiling

Ответы: >>491735

05 Июн, 15:42 #91 #491735

>>491726
Эээ... тоо есть это разработка чего-то на одной системе для другой, да?

sage 05 Июн, 15:42 #92 #491736

>>491673
Не знаю, как во всяких классических движках типа вакабы сделано, а у меня пост ссылается на тред. Ну типа class Thread { int id; }; class Post { int id; int threadId; }; Естественно, через foreign key.

sage 05 Июн, 15:43 #93 #491737

>>491707
Не слушай этих петросянов. Кресты - жаргонное название C++ (потому что на конце два креста). Иногда еще говорят "плюсы".

740 Кб, 2560x1920

05 Июн, 16:38 #94 #491775

Котаны, вторая задача. Не могу сам алгоритм понять. Если было бы фиксированное кол-во городов, тупо можно было бы прописать все варианты и найти наименьший для вывода, но вот если это число нефиксированно...

Ответы: >>491780, >>491782, >>491783

05 Июн, 16:44 #95 #491780

>>491775
Да обычная задача минимального расстояния, используй взвешенные графы.

Ответы: >>491788

05 Июн, 16:49 #96 #491782

>>491775
задача на полный перебор
>но вот если это число нефиксированно...
что значит "нефиксированно"? у тебя вводится граф, у него определенное число вершин

05 Июн, 16:52 #97 #491783

>>491775
Третью до конца сфоткай, похоже на венгерский, самая веселая будет никто в интернетах не умеет верно реализовывать венгерский

05 Июн, 17:01 #98 #491788

>>491780
Не проходили их ещё. Поясните кратко суть?

Ответы: >>491797

05 Июн, 17:23 #99 #491797

>>491788
http://allmath.ru/highermath/algebra/graph/graph6.htm

05 Июн, 18:56 #100 #491874

>>489883
Сделай трейт шаблонный, и определи его для стандартных типов. Используй его вместе с enable_if

05 Июн, 19:41 #101 #491894

Посоны, получил в общем работу на плюсах, теперь у меня где-то месяц есть чтобы подучить их до рабочего уровня, в какой книжке можно почитать не только теорию, но и приёмы применяемые в реальной жизни? паттерны-хуяттерны, стайлгайды, кукбуки, из этой степи хуйню в общем

Ответы: >>491896

05 Июн, 19:44 #102 #491896

>>491894
А чем вы там конкретно занимаетесь? Так, может быть, смогу чего-нибудь реальное подсказать.
Про паттерны у банды четырёх читай. Про всякие идиомы можешь почитать у Александреску хотя хз, как его штуки в энтерпрайзе живут. Покури буст с сырцами.

Ответы: >>491899

05 Июн, 19:46 #103 #491899

>>491896
что-то типа высокоуровневого эмбеддеда(на плюсах, лул), походу немного qt и системной хуйни(драйвера малофья)

Ответы: >>491901

05 Июн, 19:49 #104 #491901

>>491899
Блджад, ещё и в дс2, походу.
Надо бы тред qt-куна призвать да спросить, как в эти qt вкатываться и чего читать.

Ответы: >>491902, >>491904, >>491918

05 Июн, 19:50 #105 #491902

>>491901
не, это не в рашке, месяц у меня есть из-за получения визы как раз

05 Июн, 19:50 #106 #491904

>>491901
да ладно, уж кт я и сам как-нибудь подберу

05 Июн, 20:07 #107 #491918

>>491901
>как в эти qt вкатываться и чего читать.
я читал официальные доки, серьезно. там всё очень просто и понятно

оттарабанил-2года-на-qt-symbian-кун

sage 05 Июн, 20:12 #108 #491921

Как вы заебали уже. Бери задачу, решай ее, непонятное гугли (по факту все находится либо в доках, либо на СО). Идеальный код сразу ты писать все равно никогда и ни при каких условиях не сможешь, даже если вызубришь все существующие учебники и получишь докторскую по физ-мат наукам. Так что не трать время и начинай писать код. Это единственный путь.

Ответы: >>491922

05 Июн, 20:14 #109 #491922

>>491921
>кудах-тах-тах
вот так индусы из людей и получаются

Ответы: >>491956

sage 05 Июн, 20:53 #110 #491956

>>491922
Нет, маня, так получаются те, кто пишет программы. Из кукаретиков же получаются аналоги средневековых "вечных студентов". Первые в итоге набивают шишек и начинают писать хороший код, а вторые так и остаются на всю жизнь писателями факториалов и мамкиными тралами с охуенными амбициями и самомнением, но абсолютно непригодными для написания программ.

Ответы: >>491959

05 Июн, 20:56 #111 #491959

>>491956
не корми

ты с boost::interprocess работал? чо там да как?

Ответы: >>492193

sage 06 Июн, 05:50 #112 #492193

>>491959
Не работал. Прочитал сейчас по диагонали. Не понял, в чем твой вопрос.

06 Июн, 05:59 #113 #492196

Кек, override работает через жопу. C++11/MSVS 2013
Зацените вот

template <class T> class Singleton
{
protected:
void Ctor();
};

template <class T>
void Singleton<T>::Ctor()
{
\t//default constuctor is nice in its emptiness
}

class Kek : public Singleton<Kek>
{
protected:
void Ctor() override; //КО-КО-КО ЭТА ФУНКЦИЯ НИЧЕГО НЕ ОВЕРРАЙДИРУЕТ
}

Но на самом деле оверрайдит, только на кейворд ругается. Эх блядь пичаль.

Ответы: >>492200, >>492202, >>492230

sage 06 Июн, 06:37 #114 #492198

>через жопу
>MSVS
Кто бы сомневался.

sage 06 Июн, 06:39 #115 #492200

>>492196
Алсо, ты долбоебушка, это тебе не жаба, тут надо, чтоб функция была объявлена как virtual в базовом классе.
http://en.cppreference.com/w/cpp/language/override
>Specifies that a virtual function overrides another virtual function.

Ответы: >>492201

18 Кб, 1316x1152

06 Июн, 06:45 #116 #492201

>>492200
А вот за это спасибо, я видать скоро отстрелю себе всю ногу по самые яйца.

06 Июн, 06:57 #117 #492202

>>492196
Каким образом у тебя там Singleton<Kek> вообще инстанцируется, если Kek еще не объявлен, а единственное его объявление вот только что началось?

Ответы: >>492203, >>492204, >>492592

374 Кб, 894x894

06 Июн, 07:12 #118 #492203

>>492202

Ответы: >>492204

06 Июн, 07:13 #119 #492204

>>492202>>492203
Всё работает, лол.

sage 06 Июн, 10:40 #120 #492230

>>492196
> синглтон
Дважды подумай, прежде чем этот антипаттерн использовать.
http://stackoverflow.com/questions/137975/what-is-so-bad-about-singletons

Ответы: >>492231

06 Июн, 10:41 #121 #492231

>>492230
если у тебя физически только один ресурс то никак тебе этих проблем не избежать

Ответы: >>492235

sage 06 Июн, 10:44 #122 #492235

>>492231
Поэтому я и говорю "подумай дважды", а не "выкини его нахуй"

07 Июн, 00:26 #123 #492590

>>489883

https://ideone.com/kaEdOm

07 Июн, 00:29 #124 #492592

>>492202
чёт я не вижу чтобы у него там что-то инстанцировалось

Многопоточность 07 Июн, 02:57 #125 #492632

Друзья, посоветуйте что лучше юзать для реализации многопоточности на виндоус - винапи или фичи с++ 11? Мне вроде как с++ 11 больше понравилось. И накидайте пожалуйста книг или туториалов где эта тема хорошо описана.

Ответы: >>492635, >>492949

07 Июн, 03:02 #126 #492635

>>492632
https://thepiratebay.am/torrent/7139984/C___Concurrency_in_Action__Practical_Multithreading вот такую нашел, что скажете?

Ответы: >>493289

07 Июн, 18:24 #127 #492949

>>492632
C++11, сойдёт вполне.

08 Июн, 00:26 #128 #493111

Привет, кресто-блядь, вопрос становиться ли мне ею? Я пишу сейчас в основном для веба, в будущеем возможно займусь финансами, бигдатой и анализом данных, сейчас в этих сферах для скоростного трейдинга либо с++, либо с, для обычных ботов Python, R, Scala. Какие сейчас сферы применения c++ кроме геймдев-а и высокоскростного трейдинга? Я еще интересуюсь робототехникой, но там на с++ разве что уже на большие системы писать можно, на мелкие только с

Ответы: >>493118, >>493289, >>493733

08 Июн, 00:40 #129 #493118

>>493111
>Я еще интересуюсь робототехникой, но там на с++ разве что уже на большие системы писать можно, на мелкие только с
в современном "эмбеддеде" мегагерц и килобайт больше, чем в моем первом компе

Ответы: >>493145

08 Июн, 01:37 #130 #493138

>>489539
Кореш в хате, а ты где вот щяс?

Ответы: >>493139, >>493169

08 Июн, 01:39 #131 #493139

>>493138
Утраиваю кореша, нужен кореш, прямо щяс.

08 Июн, 01:58 #132 #493145

>>493118
Возможно, все что я читал обычно делалось на сишке, но может ты и прав, что можно будет ставить малинку и не парить мозг.

Ответы: >>494372

sage 08 Июн, 07:56 #133 #493169

>>493138
Мамку твою ебу.

08 Июн, 14:48 #134 #493289

>>492635
Хорошая книга.

>>493111
Если есть достаточно времени для освоения, то знание крестов лишним не будет.
> сферы применения
Обработка сигналов и изображений, пилить что-то серьёзное в этой области кроме как на C/C++ трудно. Да и либ для этого дела полно.

08 Июн, 23:23 #135 #493623

Двач помоги. Весь семетр пинал хуи. Вместо лаб препод дал реализовать простое приложение на Qt - графический редактор. Можно открывать картинку и рисовать на ней линию, а потом решать сохранять так или оставить оригинал. Дайте советов мудрых, ссылок полезных.

Ответы: >>493630, >>494376

sage 08 Июн, 23:37 #136 #493630

>>493623
QGraphicsView, QPixmap

Ответы: >>493653, >>494376

09 Июн, 04:31 #137 #493645

Братия во кресте, посоветуйте мне одну вещь. Как вылезать из яслей консольных приложений? Что читать, куда копать чтобы учится ваять формы и более-менее осознанные приложения?

Ответы: >>493659

09 Июн, 06:05 #138 #493648

>>493644

09 Июн, 07:33 #139 #493653

>>493630
Спс.

09 Июн, 08:49 #140 #493659

>>493645
Qt

09 Июн, 12:10 #141 #493700

NMAKE:-1: error: U1077: "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\cl.EXE" :
NMAKE:-1: error: U1077: "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\nmake.exe" :
Напомните как пофиксить.

Ответы: >>493751

09 Июн, 13:29 #142 #493733

>>493111
>бигдатой и анализом данных

sage 09 Июн, 13:47 #143 #493751

>>493700
Ответ очевиден http://www.youtube.com/watch?v=tmPG5WfO14A

09 Июн, 15:30 #144 #493828

Погромисты, нужно сделать работу по теме обработки кос снимков. Есть снимки landsat 8 (это спутник который снимает всю землю). Подскажите библиотеки на крестах с помощью которых можно обрабатывать снимки(очень большие до 1гб), а так же выделять спектральные каналы, и манипулировать с ними. Или ссылочки на готовые библиотеки. С меня как обычно

Ответы: >>493830

09 Июн, 15:31 #145 #493830

>>493828
Очевидный OpenCV или dlib. Расскажи подробнее про задачу.

Ответы: >>493835

09 Июн, 15:52 #146 #493835

>>493830
Есть снимок со спутника landsat 8, у этого снимка 9 спектральных каналов. До этого я открывал эти снимки в программе Envi. Теперь же стоит задача как то обрабатывать эти снимки самому, то есть выделять каналы, уменьшать или увеличивать коэффициент того или иного канала. Пока хотя бы хочется открыть это снимок (вообще их там много, но с помощью Envi я их обьединил в один) и он в формате tif. Препод сказал погуглить опен сурсные программы, ничего толкового найти не могу. Вот как то так. Вот тут в конце, примеры снимков с разными каналами http://www.geol.vsu.ru/ecology/ForStudents/3Graduate/RemoteSensing/Lection04.pdf

Ответы: >>493853

09 Июн, 16:11 #147 #493853

>>493835
OpenCV, вроде бы, может в tiff. Глянуть бы на саму тиффку ещё.
Если OpenCV Не хочется, то вот ещё:
http://trac.osgeo.org/geotiff/
http://www.remotesensing.org/libtiff/

09 Июн, 21:12 #148 #494128

Подскажи, плюсач! Я тут думаю пойти на стажировку в Яндекс. Я умею писать на плюсах, знаю 11/14, вроде понимаю алгоритмы и ООП. Собственно, вопрос: какие шансы туда попасть? К чему готовиться?

Может, кто-то пытался пойти туда, и может поделиться кулстори?

Ответы: >>494205

09 Июн, 22:11 #149 #494184

Всем привет. Дайте пожалуйста линк, где можно скачать компилятор для С++, хочу поставить CLion.

Ответы: >>494205

09 Июн, 22:52 #150 #494205

>>494128
> какие шансы туда попасть?
Очень сильно зависит от твоего уровня.

> К чему готовиться?
Они очень любят математику и всякие логические нетривиальные задачи. Хз, попробуй глянуть задачки при поступлении в ШАД.

>>494184
http://www.mingw.org/

Ответы: >>494211, >>494288

81 Кб, 573x800

09 Июн, 23:04 #151 #494211

>>494205
задачки при поступлении...

09 Июн, 23:05 #152 #494212

>>493927
Движок чего?
Для игорей я использую готовый, прирос уже к нему, свой писать нет смысла.

10 Июн, 00:30 #153 #494288

>>494205
А не знаешь, насколько им важно наличие высшего образования? Я не закончил свою шарагу, даже неоконченного высшего нету. Стоит пробоваться или это дохлый номер?

Ответы: >>494294

10 Июн, 00:32 #154 #494294

>>494288
Всё, чем я могу помочь в этом вопросе:
http://habrahabr.ru/company/yandex/blog/235171/

Ответы: >>494298

10 Июн, 00:33 #155 #494298

>>494294
Хмм, спасибо! Похоже, им это не очень важно по базе, но, подозреваю, отсутствие ВО будет минусом.

246 Кб, 1600x1200

10 Июн, 02:48 #156 #494371

посоны, есть код. В нём всё нормально? То есть, эта программа должна запускаться ведь?
А в чём можно запустить?
Дев с++ похоже первой библиотеки не знает, а я только в нём работал немного. Я не программист нихуя, но мне очень нужно запустить эту программу, заранее благодарю за помощь.

#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "windows.h"
#include "math.h"

const float h = 0.05;
const int N = 21;

int _tmain(int argc, _TCHAR argv[])
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);

float x[N], m[N], k[N], f[N], c[N], d[N], y[N];

float A = 0, B = 3.718;
float alpha1 = -1, alpha0 = 1, betta0 = 1, betta1 = 0;

for (int i = 0; i < N; ++i)
{
x = h i;
m = -2 + h (-2 x);
k = 1 - h (-2 x) + h h (-2);
f = 4 x;
}

c[0] = (alpha1 - alpha0 h) / (m[0] (alpha1 - alpha0 h) + k[0]
alpha1);
d[0] = (k[0] A h) / (alpha1 - alpha0 h) + f[0] h h;
for (int i = 1; i < N - 2; ++i)
{
c = 1 / (m - k c[i - 1]);
d = f h h - k c[i - 1] d[i - 1];
}

y[N - 1] = (betta1 c[N - 3] d[N - 3] + B h) / (betta1 (1 + c[N -
3]) + betta0 h);
for (int i = N - 3; i >= 0; --i)
{
y[i + 1] = c (d - y[i + 2]);
}
y[0] = (alpha1 y[1] - A h) / (alpha1 - alpha0 h);

for(int i = 0; i < N; i++)
{
printf("y[%d] = %.4f \n", i, y);
}

system("pause");

return 0;
}

Ответы: >>494374, >>494377

10 Июн, 02:53 #157 #494372

>>493145
в армовых атмелах и stm32 есть до 512кб флеша(!!!) + 64кб рамы. туда уже блядь не просто плюсы суют, туда уже блядь луа с жабоскриптом хуячат
эмбеддед нахуй бля!

159 Кб, 1280x853

10 Июн, 02:57 #158 #494374

>>494371 Вот, что пишет при компиляции в дев с++
stdafx.h: No such file or directory.

Ответы: >>494377

10 Июн, 03:01 #159 #494376

>>493623
в экзамплах есть basic drawing, это не совсем то, но там показано как рисовать вообще

>>493630
>QGraphicsView
только если нужно что-то типа diagram scene из экзамлов

10 Июн, 03:08 #160 #494377

>>494371
>>494374
Не актуально! Помог сосед по общаге с факультета ПИ :3

10 Июн, 19:58 #161 #494711

Програноны, выручайте.
Где можно прочитать про дискретизацию и квантование изображений в Qt? (В Шлее не нашёл нихуя, гугл молчит).

Ответы: >>494713, >>494714

10 Июн, 20:04 #162 #494713

>>494711
Что ты подразумеваешь под дискретизацией в Qt? Как непрерывные сигналы собираешься в комплюхтер загружать?
Какое квантование тебе нужно?
На сколько я знаю, Qt – не либа для обработки изображений.

Ответы: >>494715

10 Июн, 20:11 #163 #494714

>>494711
Тривиальное квантование описывается одной формулой.
Для квантования цветных картинок можно решать задачу кластеризации.

10 Июн, 20:11 #164 #494715

>>494713
Задание моё звучит так:
"Дискретизация кадра, хранящегося в объекте QImage библиотеки Qt, полученного с устройства видеозахвата библиотеки компьютерного зрения openCV."
И то же самое с квантованием.

Ответы: >>494723, >>494726

10 Июн, 20:44 #165 #494723

>>494715
Qt тут не причем, же. Выгружаешь из QImage пиксели в массив, ну или три (четыре) дискретизируют наверное каждый цвет отдельно, пердолишся с байтами, может библиотека какая есть. Полученое снова заливаешь в QImage.

10 Июн, 20:48 #166 #494726

>>494715
Пиздуй задание уточнять.

Ответы: >>494731

10 Июн, 20:54 #167 #494731

>>494726
так задание я и изложил.
это теоретический вопрос.

Ответы: >>494732

10 Июн, 20:56 #168 #494732

>>494731
Ты понимаешь, что такое дискретизация? Может быть, тебе какой-нибудь ресемплинг нужен?

Ответы: >>494734

10 Июн, 21:01 #169 #494734

>>494732
я изложил как есть. если б я хоть каплю понимал в чем дело, то не стал бы тут о помощи молить.

10 Июн, 21:33 #170 #494761

Как в Qt рисовать на виджете? Никак не могу найти нормальный мануал.

Ответы: >>494768

10 Июн, 21:39 #171 #494768

>>494761
Встроенный. QPainter.

Ответы: >>494799

10 Июн, 22:04 #172 #494799

>>494768
Я ему передаю указатель на дочернее окно (виджет) и нихуя.

Ответы: >>494802

10 Июн, 22:08 #173 #494802

>>494799
Кек. Открываем справку по QWidget. Читаем:

Custom Widgets and Painting

Since QWidget is a subclass of QPaintDevice, subclasses can be used to display custom content that is composed using a series of painting operations with an instance of the QPainter class. This approach contrasts with the canvas-style approach used by the Graphics View Framework where items are added to a scene by the application and are rendered by the framework itself.

Each widget performs all painting operations from within its paintEvent() function. This is called whenever the widget needs to be redrawn, either as a result of some external change or when requested by the application.

The Analog Clock example shows how a simple widget can handle paint events.

Особое внимание на последний абзац.

Ответы: >>494808

10 Июн, 22:15 #174 #494808

>>494802
Его нужно перерисовывать после выполнения eventPainting? Как?

Ответы: >>494822

10 Июн, 22:22 #175 #494822

>>494808
>Его нужно перерисовывать после выполнения eventPainting?
в обработчике события paintEvent

>Как?
открой блядь доку
в обработчике создаешь QPainter painter(this); и рисуешь

это всё относиться к qt 4.x, для qt 5.x ОТКРОЙ БЛЯДЬ ДОКУ

10 Июн, 22:25 #176 #494829

Я смотрел доку.
У меня есть класс окна Batya, в нем виджет Syna. Вот чтобы отрисовать на сыне из бати вызвается этот метод отрисовки и ему передается указатель на сыну и нихуя.

Ответы: >>494838

10 Июн, 22:33 #177 #494838

>>494829
>виджет Syna
для виджета Syna определяешь функцию paintEvent (у тебя же Syna — это класс, а не инстанс, я надеюсь?)

Ответы: >>494842

10 Июн, 22:35 #178 #494842

>>494838
Я не оправдал твоих надежд.

Ответы: >>494847

10 Июн, 22:37 #179 #494847

>>494842
хуйово быть тобой

Ответы: >>494853, >>495178

10 Июн, 22:41 #180 #494853

>>494847
49->48->47
kek

11 Июн, 01:33 #181 #495109

Кто-нибудь видел это?
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3851.pdf

11 Июн, 02:07 #182 #495117

Аноны, подскажите, как реализовать мониторинг запущенных процессов с возможностью их завершения ?

11 Июн, 10:31 #183 #495178

>>494847
Я короч сделал, отрисовывает. Но вот теперь хочу заставить квадрат двигаться

Ответы: >>495193, >>495401

11 Июн, 10:52 #184 #495193

>>495178
Нужно было заснуть апдейт в отрисовщик

Ответы: >>495401

11 Июн, 12:28 #185 #495231

мне была поставлена задача выучить за год с++. я справлюсь? это возможно?

Ответы: >>495254

sage 11 Июн, 12:54 #186 #495254

>>495231
Ну и хули ты сюда-то пришел? Иди учи.
http://www.youtube.com/watch?v=nuHfVn_cfHU

Ответы: >>495272, >>495276

sage 11 Июн, 13:36 #187 #495272

>>495254
уже учу блжад

11 Июн, 13:55 #188 #495276

>>495254
Синтаксис - возможно.
http://abstrusegoose.com/249

11 Июн, 15:55 #189 #495333

Опять я.
Qt. Загрузил картинку в виджет (QPixmap), порисовал в виджете pen'ом как теперь все это сохранить правильно (картинку с нарисованым)?

Ответы: >>495377

11 Июн, 17:16 #190 #495377

>>495333
http://stackoverflow.com/questions/16362191/qt-grab-widget-and-save-image

11 Июн, 17:40 #191 #495401

>>495178
>>495193
QTimer ⁕timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(repaint()));
timer->start(1000);

55 Кб, 757x68

114 Кб, 914x88

12 Июн, 13:01 #192 #495708

Написал класс для работы с матрицами, все работало нормально.
Решил сделать шаблонную типизацию, чтобы элементом матрицы, могла быть тоже матрица. В итоге пикрилейтед.
Что ему не нравится? Как вообще нужно переопределять операторы в шаблонных классах?

Ответы: >>495713, >>495735, >>496205

12 Июн, 13:06 #193 #495713

>>495708
>Решил сделать шаблонную типизацию, чтобы элементом матрицы, могла быть тоже матрица.
Задротов полон тред. Когда встретится тебе эта задача, тогда её и напишешь.
Сейчас её решение стоит 52500 на руки в ДС1, при средней 77500 для программистов.
С чем нас всех и поздравляю. Вечная нам память.

Ответы: >>495723

566 Кб, 2560x1920

12 Июн, 13:19 #194 #495723

>>495713
>Когда встретится тебе эта задача
Так она уже встретилась. Нужно реализовать метод конечных элементов. Задание пикрилейтед.
В этом методе практически все расчеты основаны на матрицах, причем встречаются и матрицы матриц.

Ответы: >>495735

12 Июн, 13:32 #195 #495735

>>495708
Текст варнинга принёс бы хотя бы.
>>495723
Тензоры ты имел в виду?

Ответы: >>495739, >>496292

49 Кб, 581x386

12 Июн, 13:51 #196 #495739

>>495735
Весь текст варнинга на пике

>Тензоры ты имел в виду?
Не знаю, мне только алгоритм объяснили. Даны точки ABCD, из них составляется фигура, например трапеция, как на пике. Затем эта фигура разбивается на какое-либо количество элементов-треугольников. Ну а дальше начинается вакханалия с матрицами.

Ответы: >>495748

12 Июн, 13:57 #197 #495748

>>495739
В глаза ебусь, ну и хуй с ним:
http://stackoverflow.com/questions/4039817/friend-declaration-declares-a-non-template-function

12 Июн, 15:56 #198 #495849

Qt.
Как отрисовывать картинку QPixmap в виджете, чтобы она не замощалася (как методом brush)

Ответы: >>496207

12 Июн, 16:10 #199 #495856

Двач, мне нужен гайд по произношению в C++
Вчера общался с человеком(хикка, и с людьми общаюсь редко, особенно на тему программирования) и понял, что я неправильно произношу очень многие вещи.
Например cin и cout я всегда произносил как "кин" и "каут" вместь "си-ин" и "си-аут", а char как "чар", вместо "кар". В общем нужен гайд о том, как правильно произносить название команд, функций, и тд.

Ответы: >>495860, >>495910, >>496101, >>496185

12 Июн, 16:12 #200 #495860

>>495856
В /fl/ есть где-то тред, который тебе поможет

12 Июн, 17:36 #201 #495910

>>495856
Учи английский, смотри видео лекции и конференции.

12 Июн, 23:36 #202 #496101

>>495856
Тут между Явой и Джавой определиться не могут, а ты хочешь, чтобы тебе произошение каждого оператора написали. Нету в английском языке правил произношения, забей на это.

Ответы: >>496120

12 Июн, 23:40 #203 #496105

Посоны, может поможете с лабой по СИ.

Дан массив вещественных чисел , состоящий из n элементов(N=20)найти в какой половине находится минимальный и максимальный элемент!

Будьте же людьми, завтра зачет

Ответы: >>496243

12 Июн, 23:40 #204 #496106

Привет, товарищи. Учусь в шараге, учим С++. Используем мерзкий С++Builder, от которого у меня постоянные ошибки и рвотные рефлексы.
Поставил себе VisualStudio 2012. Посоветуйте линки, где можно ознакомиться с формами и средой разработки в целом(но важнее именно формы, т.к. в сибилдере формы более-менее освоил, но тут они отличаются).
И какую графическую библиотеку лучше использовать- OpenGL/SFML?

Cпасибо.

Ответы: >>496117, >>496119, >>496122, >>496155, >>496275

12 Июн, 23:54 #205 #496117

>>496106
Builder не нужен, MFC тоже. Единственный нормальный GUI фреймворк на C++ - это Qt. Ставь QT Creator, документация с примерами идет вместе с ним.
> И какую графическую библиотеку лучше использовать- OpenGL/SFML?
Не работал с SFML. Я использовал SDL + OpenGL, но это просто Си (без плюсов). Если будешь писать только под винду, можно использовать DirectX (для графики - Direct3D). А вообще лучше взять какой-нибудь готовый движок.

Ответы: >>496216

12 Июн, 23:55 #206 #496119

>>496106

Если ты действительно хочешь знать что такое С++(зарабатывать деньги) начинать нужно в пердольке, компилирую ручками. Потом сиди в каком хочешь GUI, но без знание пердольки будешь говном-специалистом.

12 Июн, 23:56 #207 #496120

>>496101
> Тут между Явой и Джавой определиться не могут
Правильно - жаба.

13 Июн, 00:07 #208 #496122

>>496106
Если тебе для игорь и в 2d - то советую sfml. Она охуенно проста, любой разберется, и все, что нужно, в ней есть.

13 Июн, 01:16 #209 #496155

>>496106
Sfml.

13 Июн, 02:23 #210 #496185

>>495856
Во у людей проблемы-то! На самом деле, абсолютно посрать, как ты говоришь, если тебя понимают. Но лучше действительно стараться говорить как все.

Я ни разу не слышал, чтобы "чар" называли "каром". Ты же говоришь "двач", а не "двак". "Си-ин" и "си-аут" -- потому, что напрашивается расшифровка этого как C-input и C-output, где C -- название языка.

Вообще, понапиши, что ли, как ты другие штуки произносишь, прям даже интересно стало.

Ответы: >>496265

13 Июн, 04:26 #211 #496205

>>495708
где template<typename Type> ????
а еще матрицы по ссылке передавать наверно надо (и я сомневаюсь что ты запили CoW)

13 Июн, 04:29 #212 #496207

>>495849
>замощалася
щито?

возможно вы искали QLabel.setPixmap?

Ответы: >>496208

13 Июн, 04:31 #213 #496208

>>496207
>QLabel::setPixmap
selffix

2006 Кб, 375x209

13 Июн, 09:14 #214 #496216

>>496117
> Builder не нужен, MFC тоже. Единственный нормальный GUI фреймворк на C++ - это Qt.
НАЧА-А-А-А-А-А-АЛЬНИК

7 Кб, 259x194

8 Кб, 275x183

9 Кб, 320x240

13 Июн, 09:18 #215 #496217

> VCL
> MFC
> Qt

13 Июн, 10:27 #216 #496226

>Я ни разу не слышал, чтобы "чар" называли "каром". Ты же говоришь "двач", а не "двак". "Си-ин" и "си-аут" -- потому, что напрашивается расшифровка этого как C-input и C-output, где C -- название языка.
Ловите поехавшего!
Кар по тому, что Char это сокращение от Character(Карактер). Ты школа(School) как говорить будешь? Счул?
А в C-input и C-output C это не название языка, а Console

Ответы: >>496231, >>496306

13 Июн, 10:49 #217 #496231

>>496226
>Кар по тому, что Char это сокращение от Character(Карактер).
тогда уж кер, он же керэктэр.
Но все говорят чар, так или иначе

13 Июн, 11:39 #218 #496243

>>496105
ебать ты аутист, нахуя ты вообще на погруниста пошел?
int index_min = 0;
int index_max = 0;
for(int i = 0; i < N; ++i){
if(massive > massive[index_max]) index_max = i;
if(massive < massive[index_min]) index_min = i;
}
Надеюсь как определить половину массива сам догадаешься...

13 Июн, 12:57 #219 #496265

>>496185
Console input, console output, console error. откуда вы такие лезете?

Ответы: >>496306

13 Июн, 13:17 #220 #496275

>>496106
SFML, считай, почти прослойка для опенгла на уровне рисования треугольничков в 2д.

13 Июн, 14:35 #221 #496292

>>495735
>Тензоры ты имел в виду?
Скорее всего он имел ввиду блочные матрицы.

13 Июн, 15:11 #222 #496306

>>496226
>>496265
Не важно, откуда это сокращение. Чаще всего в английском "ch" на начале слова читается как "ч". Кстати, ролевики персонажа обычно тоже называют "чаром", а это сокращение ровно того же слова.

Насчет же си-ин, си-аут и т.д. я говорю о том, что напрашивается, а не о том, как на самом деле. Впрочем, они могут идти и не в консоль, зависит от.

Ответы: >>496310

13 Июн, 15:18 #223 #496310

>>496306
ну я слышал как нативы говорят и кар и чар

Ответы: >>496327

sage 13 Июн, 15:24 #224 #496315

Лол, я вообще говорю "цэ-ин, цэ-аут". Кого ебет, срсли? Закончил школу с английским уклоном, очень сильной училкой, спец. предметами типа англ. литературы, англ. истории и перевода, все дела. Правда, уже проебал словарный запас за ненадобностью, но все равно ссу снобам в ротешники. Как хочешь, так и говори. Начнешь общаться в определенной среде - сам незаметно переймешь устоявшиеся в этой среде варианты.

13 Июн, 15:41 #225 #496327

>>496310
Ну, логично. Это как "звонИшь" и "звОнишь" у нас. Язык меняется со временем.

Ответы: >>496425

13 Июн, 18:05 #226 #496425

>>496327
ну и похуй в таком случае

196 Кб, 1200x1047

Ментор ++ Алёна 14 Июн, 15:48 #227 #496937

Господа, в том треде писал , кто-то даже откликнулся, но потом дал заднюю.
в общем:
Собираюсь уволиться с работы , чтобы наконец нормально вкатиться в pr.
Говорю сразу - не дуб, многие вещи понимаю, знаю или слышал.
Просто у меня с постановкой задач для самого себя возникают проблемы , и с практикой
Почитаю книги, напишу пару прог, а дальше что-то делать мотивации не хватает - от неуверенности в том, что делаю дело, а не хуйню.

В общем, ищу Ментора наставника на пару летних месяцев - нужен вектор и небольшая помощь советами в плане : на что обратить внимание, а на что нет.
Как то так.
спасибо)

P.S ^ C++ - язык

Ответы: >>497060, >>497118, >>497128, >>497140, >>497149, >>497303, >>497310

sage 14 Июн, 19:12 #228 #497060

>>496937
А контакты оставить?

Ответы: >>497118

14 Июн, 19:59 #229 #497100

Плюсаны, а вот допустим, что у меня есть variadic template метода с двумя пачками параметров. Есть возможность реализовать их попарное сравнение (например, вернуть (a1 == b1) && ... && (an == bn)) одновременно красиво (чтобы не обмазываться calling convention'ами и байтоебством) и без изъебств с лишней генерацией кода (рекурсия с отрезанием по одному параметру с хвоста или подобное говно)? Я пока придумал только вариант, где пачки сначала загоняются в списки инициализации для контейнеров, а потом делается проход по контейнерам. Но это костыль какой-то, в рантайме будут контейнеры заполненные в лучшем случае дохуищем ссылок на элементы пачек, а на самом деле достаточно же в каждый момент времени только пары ссылок на очередные параметры. Что же делать?

Ответы: >>497123

14 Июн, 20:15 #230 #497118

>>496937
>>497060
Да я думал подождать пока кто тут откликнется.
почта - [email-masked]

Ответы: >>497122

42 Кб, 700x573

14 Июн, 20:18 #231 #497122

>>497118
>@bk.ru

14 Июн, 20:19 #232 #497123

>>497100
А по-другому никак, скорее всего, ёбли будет много. Придётся натрахаться с тульпами туплями и кучей шаблонного говна.
http://stackoverflow.com/questions/26902633/how-to-iterate-over-a-tuple-in-c-11

Ответы: >>497133

14 Июн, 20:24 #233 #497128

>>496937
Охуительно, я вот три года назад не придумал искать себе гида в pr на сосаке.

Ответы: >>497303

14 Июн, 20:26 #234 #497133

>>497123
Я пораскинул мозгами сейчас и понял, что можно сделать что-то в духе list <bool> results { (args1 == args2) ... }, чтобы не юзать кортежи со всяким говном. Но тут таки остается маленькая проблема - канонично было бы сделать, как в нормальном условном выражении, чтобы если первая пара не совпала, то сразу бы возвращалось false, и дальше ничего не считалось. А так получается хранение результатов всех попарных сравнений, вплоть до конца списка. Может, можно в список инициализации воткнуть какую-нибудь лямбду, или что-то подобное сделать?

Ответы: >>497138, >>497150, >>497159

14 Июн, 20:28 #235 #497138

>>497133
Бррр... сейчас попробую накидать это говно.

14 Июн, 20:29 #236 #497140

>>496937
Шилдт, Майерс, Гамма, Макконнелл, Саттер, Джоссатис, Александреску [, Страуструп]. Именно в таком порядке.

Ответы: >>497157, >>497310, >>497533

14 Июн, 20:35 #237 #497149

>>496937
Псст, парень. Не хочешь немного кроссовок?

Ответы: >>503622

14 Июн, 20:37 #238 #497150

>>497133
почему нельзя взять
make_tuple(a...) == make_tuple(b...)
?

тульпы сравниваются поэлементно же

Ответы: >>497153, >>497154, >>497159

14 Июн, 20:40 #239 #497153

>>497150
Хуясе, а я как обычно начал хуярить костыль.

14 Июн, 20:40 #240 #497154

>>497150
Дык можно, никто не спорит. Но смари, в инстанцированном методе будут создаваться эти тульпы на основе параметров, и это отожрет производительность. Для того, чтобы получить ответ, ничего, кроме параметров по факту не нужно, а мы будем хуярить лишние структуры данных и копировать их.

Ответы: >>497156, >>497228

14 Июн, 20:41 #241 #497156

>>497154
думаешь компилятор не справится с такой оптимизацией?

Ответы: >>497165

14 Июн, 20:42 #242 #497157

>>497140
Чому так много? А можно сразу со Страуструпа? Что скажешь насчёт Прата, Дейтелов?

Ответы: >>497301, >>497410

14 Июн, 20:46 #243 #497159

>>497150
Что будет в результате сгенерировано? Что-то вот такое:

[code lang = "cpp"]
bool unique_f (int a1, char a2, YOBA a3, int b1, char b2, YOBA b3)
{
\treturn (make_tuple (a1, a2, a3) == make_tuple (b1, b2, b3));
}
[/code]

То есть, у нас во время работы есть два набора параметров, две их копии в тульпах, да еще и проблема из >>497133 остается.

Ответы: >>497160

14 Июн, 20:47 #244 #497160

>>497159
Поебись с perfect forwarding. Скинь решение потом.

14 Июн, 20:51 #245 #497165

>>497156
Я бы даже сказал, что скорее всего не справится. Если параметры передаются по ссылке, то юзать move semantics будет запрещено, чтобы не попортить. В качестве типов в тульпах может быть любой пользовательский класс, шаблон же. А в этом пользовательском классе может быть нестандартно реализовано копирование, причем компилятор это не увидит, тому що реализация вообще может быть в другом модуле. Он зассыт неявно поднасрать тебе, вдруг ты специально добавил преферанс и блудниц в конструктор копирования, и не ждешь, что они тут вылезут.

Ответы: >>497166

14 Июн, 20:52 #246 #497166

>>497165
окай, std::tie --- те же тульпы, только lvalue references

Ответы: >>497170

74 Кб, 1000x963

14 Июн, 20:55 #247 #497170

>>497166
http://pastebin.com/Amxtrswh

Ответы: >>497173

101 Кб, 1004x765

14 Июн, 20:59 #248 #497173

>>497170
добавляем std::string к комплекту: http://pastebin.com/dkpGuqzX

Ответы: >>497177

14 Июн, 21:01 #249 #497177

>>497173
Грустно достаточно.
Интересно, а как спермоподелие там справляется.

14 Июн, 21:26 #250 #497187

По идее, массив тут на хуй не нужен уже, но нельзя просто взять и распаковать пачку вне какого-то из контекстов. А сишный массив самый легковесный из контейнеров, поддерживающих {}-инициализацию.

[code lang="cpp"]
template <typename ... Args>
bool f (Args ... args1, Args ... args2)
{
\ttry
\t{
\t\tbool results []
\t\t{
\t\t\t([&args1, &args2] ()
\t\t\t{
\t\t\t\tif (args1 != args2)
\t\t\t\t\tthrow (1);
\t\t\t\treturn false;
\t\t\t} ()) ...
\t\t};
\t}
\tcatch (...) { return false; }

\treturn true;
}
[/code]

14 Июн, 22:39 #251 #497228

>>497154
std::tie. В релизе превращается в чистое сравнение по элементам со всеми оптимизациями.

15 Июн, 00:26 #252 #497301

>>497157
1. Потому что с уровня "не писал на плюсах, могу хелловорлд на чистом си" до уровня нормального разработчика, умеющего в реальные задачи. Знаешь кресты поверхностно? Шилдта можно по диагонали. Вообще не кодил? Добавь перед Шилдтом Кернигана-Ричи про чистый си и Таненбаума про архитектуру пекарен. Короче, точки входа меняются, но последовательность всегда одна.
2. Не рикамендую. Он и так факультативно и в конце. Хардкорнее только читать сам стандарт. Много букв, написано довольно сухо, может отбить желание.
3. Не читал. Вполне возможно, что годнота, но в категории must read для крестопидоров их нет.

Ответы: >>497304

15 Июн, 00:35 #253 #497303

>>496937
>>497128
если сарказм, то я ж не только тут ищу)

15 Июн, 00:37 #254 #497304

>>497301
действительно Страуструпа нельзя с нуля. Скажи одну единственную книгу перед Страуструпом если ни разу не прикасался к прогерству. нужно сразу изучать времени нет на хождения вокруг да около. Таненбаум нинужен, т.к. читал Скотта Мюллера.
мимодругойанон

Ответы: >>497533, >>497789

15 Июн, 01:14 #255 #497310

>>497140
>>496937
>>497140
>>496937

>>497140
>>497140
ладно, допустим.
А что делать между книгами?
С чтением проблем особых нет, но когда закончится вторая книга книга первую начинаешь немного забывать, и не сказать, что толку совсем ноль, но без Практик реального pr почти так и есть.
хотя я и понимаю, что на совсем пустую голову так нельзя

Ответы: >>497370

sage 15 Июн, 08:19 #256 #497370

>>497310
>когда закончится вторая книга книга первую начинаешь немного забывать, и не сказать, что толку совсем ноль, но без Практик реального pr почти так и есть.
Еще один все понял. Просто пиши код. Книги читают с определенной целью, а не просто так. Например, чтобы улучшить свой код. Если ты не пишешь код, а только читаешь книги, то ты все делаешь неправильно.

Ответы: >>497393

15 Июн, 09:27 #257 #497393

>>497370
>Если ты не пишешь код, а только читаешь книги, то ты все делаешь неправильно
cпасибо кэп, я это итак понял.
Я не хочу писать велосипеды, хотя это и полезно - не спорю.

Ответы: >>497405, >>497589

sage 15 Июн, 10:55 #258 #497405

>>497393
Устраивайся на работу тогда. Хотя и там ты тоже будешь писать велосипеды.

Ответы: >>497408, >>497409

15 Июн, 11:05 #259 #497408

>>497405
не цепляйся к словам.
дык, я же уже и расписал зачем мне ментор :
чтобы помог вкатиться в коммерческое программирование - человек, который уже относительно давно пишет и знает, грубо говоря, на что нужно обратить внимание а на что можно немного положить

Ответы: >>497409, >>497426

15 Июн, 11:05 #260 #497409

>>497405
>>497408
чтобы уже с багажом каким-никаким устроиться на работу

15 Июн, 11:09 #261 #497410

>>497157
Прата - норм.

Ответы: >>497427

sage 15 Июн, 12:12 #262 #497426

>>497408
Надо уметь разбираться в чужом коде, уметь пользоваться системами контроля версий (какими именно - зависит от конкретной компании), уметь ясно излагать мысли и слушать других, владеть английским, чтобы не писать int KOLODA; (тру стори, перпод так писал), ну и, разумеется, знать предметную область (тут уже никаких конкретных рекомендаций никто дать не сможет, все зависит от того, что ты сам выберешь). Зубрить STL и виды контейнеров нет никакого смысла, но минимальный их набор знать нужно: список, словарь, стек, вектор, ну и чем они отличаются. Еще неплохо знать SQL. Все остальное (в том числе алогритмы и байтоебля) относится к предметной области и обязательно к изучению только в том случае, если ты с этим будешь работать (никому нахуй не интересно, знаешь ли ты все виды сортировок, если ты пишешь GUI - просто юзаешь стандартный квиксорт и чувствуешь себя сухо и комфортно). Знание фреймворка(ов) будет большим плюсом (в том числе потому, что помогает понять, как делаются настоящие большие проекты).
Вот, собственно, и все. Выбирай, чем ты хочешь заниматься, и вперед. Погромирование - инструмент, а не самоцель. Оно помогает решать задачи в предметной области, а потому надо исходить из цели, а не из инструмента. Может так статься, что ты через полгода будешь писать на жабе или на, прости г-споди, руби. Не зацикливайся на инструменте.

sage 15 Июн, 12:14 #263 #497427

>>497410
Подтверждаю. Но только для новичка. Для того, кто умеет внятно объяснить отличие ссылки и указателя в прате ничего нового и интересного не найдется. Начинал с него, когда только учился крестам и погромированию вообще, недавно пролистал новое издание - вообще ничего интересного. Лучше потратить время на написание еще одного велосипеда.

15 Июн, 15:59 #264 #497533

>>497304
Есть как бы три уровня погроммирования.
1. Просто знать синтаксис языка, самые основные правила, чтобы не выстрелить себе в ногу, и уметь написать говнопрограмму из 100 строчек. Для этого можно читать вообще любой учебник для нюфагов, ибо они отличаются только глубиной разжевывания фич, да и то не сильно. Для крестов очень хорошие - Шилдт, Лафоре, Прата. Я в свое время читал Шилдта и рекомендую его, но тут рли разницы нет, читай любую.
2. Собственно погроммирование более высокого уровня, решение всяких небольших задач, но изящно и/или оптимально. Написание консольных утилит и олимпиадки из этой серии. Именно этому учат в нормальном универе, изучить сами кресты тут недостаточно. Нужно дрочить алгоритмы и много практиковаться, чтобы накопить собственную коллекцию фич. Из-за маленького объема кода на этом уровне ты можешь игнорировать паттерны, тестирование и прочие атрибуты НАСТОЯЩЕЙ РАЗРАБОТКИ.
3. Разработка ПО. Обычно у всяких олимпиадников при переходе на этот уровень происходит разрыв шаблона, ибо в универе этому не учат вообще, и оказывается, что навыки экономии байтов нужны редко, а вместо олимпиадки, где ты пишешь только интересную часть программы без обработки ошибок, тупых пользователей, и вообще задача околоматематическая и небольшая, нужно хуярить проект на миллион строк, в котором самой сложной структурой данных будет красно-черное дерево. Да и за его реализацию ПМ даст пизды, потому что оно есть в STL. Основные навыки - писать понятно и безопасно, даже в ущерб производительности, не изобретать велосипеды, работать в команде с другими погроммистами VCS и вот это все. И вот здесь тебе понадобятся книжки в духе "33 паттерна", "Как перестать говнокодить и начать жить", ну ты понел. Иначе ты будешь писать лютый говнокод, который будет сложно поддерживать. Более того, в большом коммерческом проекте ошибки дорого стоят, поэтому нужно помнить фичи, которые на уровне 2 бы показались полным ебланством гугли RAII и COW. В списке >>497140 здесь все книжки, кроме Шилдта, относятся, скорее, именно к этому уровню, хотя их недостаточно, разумеется.

Ответы: >>497535, >>498183, >>498839

15 Июн, 16:12 #265 #497535

>>497533
Лол, даже не представляю как, понимая это, можно не испытывать отвращение к программированию и так спокойно это всё писать, будто даже норм и к этому надо стремиться.

Ответы: >>497537, >>497538, >>497568

15 Июн, 16:23 #266 #497537

>>497535
>понимая это
Что именно у тебя вызывает отвращение?

sage 15 Июн, 16:28 #267 #497538

>>497535
Вот молоток - это штука для забивания гвоздей. Тупейшее устройство чтобы долбить им по шляпке. Начинай теперь испытывать отвращение к молотку. Аналогию понял?

Ответы: >>497541

15 Июн, 16:33 #268 #497541

>>497538
Да, но лично мне непонятно как можно увлекаться молотками, читать про них книжки, обсуждать их на борде блять, вообще пушка. Я сюда хожу чисто попиздеть и поностальгировать, а вот хули вы здесь забыли - неясно.

Ответы: >>497549

sage 15 Июн, 16:56 #269 #497549

>>497541
А хули "мы". Я анону помогаю, да дебилам с лабами в ротешник ссу. Книжки читаю только тогда, когда хочу узнать новый способ использования молотка для какой-то конкретной задачи. В остальное время просто заколачиваю гвозди, строя то, что мне требуется.

Ответы: >>497570

15 Июн, 17:41 #270 #497568

>>497535
Ну дык, няш. Есть манямирок, а есть реальность. От того, что ты будешь внушать себе, что в индустрии все охуенно, на самом деле охуенно не станет. Только адекватно оценивая ситуацию, можно приспособиться. И да, на самом деле это только звучит страшно. Если ты шаришь, то даже не будешь задумываться об этой хуйне. Это как с велосипедом, например, сложно только в начале, а потом берешь и едешь.

Ответы: >>497593

15 Июн, 17:44 #271 #497570

>>497549
Два std::set <Tea> этому благородному дону.

15 Июн, 18:13 #272 #497589

>>497393
Пиши велосипеды. Ты должен понимать как устроены и работают сущности - алгоритмы, структуры данных. Возьми курс SICP или Седжвика и пиши всё подряд.

15 Июн, 18:17 #273 #497593

>>497568
Да причём здесь это. Я про то, что если это тупо вьёб, то хули тут интересного, и про что тут говорить? Лучше б книжки почитали, или аниме посмотрели, или там спортом занялись. Это ж куда увлекательнее молотка. Алсо, если из таких позиций исходить, то это даже вредно, тк кодинг такая область где любой сеанс чтения хотя бы на полчаса в день очень быстро делает тебя оверквалифаед забивателем гвоздей, так что тебе некуда все эти знания девать будет. Не, ну может и есть конченые дибилы которым реально надо всё время учиться, просто чтобы не уволили, но среднему кодеру того что он нагуглит непосредственно во время решения задач на работе будет даже гораздо более чем достаточно для того чтоб продолжать получать не просто те же деньги, но ещё и идти на повышение, в случае, если он ещё не достиг кодерского потолка где-то так в 4к.

Ответы: >>497657, >>498183, >>498221

15 Июн, 21:03 #274 #497657

>>497593
Хочешь интересного – иди в науку, но там заёбов не меньше.
.

Ответы: >>498183

16 Июн, 03:22 #275 #497789

>>497304
> Скажи одну единственную книгу перед Страуструпом если ни разу не прикасался к прогерству.
K&R

Ответы: >>498183

16 Июн, 23:57 #276 #498183

>>497789
не понял.

>>497593
сам ты аниме

>>497657
научные заебы восприму как благость

>>497533
ты немножко не понял. я за год должен выучить плюсы и фортран чтобы вкатиться свер своих сил манямечты в науку

Ответы: >>498184, >>498198, >>498215

16 Июн, 23:58 #277 #498184

>>498183
>сверх

17 Июн, 00:13 #278 #498198

>>498183
керриган и ричи: введение в похапе

Ответы: >>498203

17 Июн, 00:16 #279 #498203

>>498198
молодец. возьми конфетку

Ответы: >>498222

186 Кб, 508x700

17 Июн, 00:26 #280 #498215

>>498183
>2015
>фортран

Ответы: >>498230

17 Июн, 00:31 #281 #498221

>>497593
А хуле интересного автолюбители находят в ковырянии в гараже? Лучше в сервис тачку сдать и пива бухнуть, епты! В тянках хуле интересного? У той пизда, и у этой пизда, одну выебал и хватит, дальше ничего нового. Алсо, про книжки и аниму тоже нечего говорить. Ты посмотрел, он посмотрел, ну и все, какая польза от обсуждения? Да и смотреть/читать тоже бесполезно, там же все не как в жизни. Ну ты понел.

17 Июн, 00:32 #282 #498222

>>498203
ом-ном-ном

17 Июн, 00:42 #283 #498230

>>498215
Увы, но он живее всех живых.

28 Кб, 616x381

17 Июн, 04:20 #284 #498273

Пишу симулятор терминала из фоллача3. Компилятор жалуется на 8 стоку. Что я делаю не так?

Ответы: >>498274, >>498296, >>498612

17 Июн, 04:53 #285 #498274

>>498273
исправь в 5 строке char str на char *str

17 Июн, 07:31 #286 #498296

>>498273
[CODE]void output(const char* s) {
while(s != '\0') {
std::cout << s++;
sleep(10);
}
}[/CODE]

Ответы: >>498625

17 Июн, 18:21 #287 #498612

>>498273
>using namespace std;
>c-like строки
>while с костылями вместо for (auto chr : str)
>глобальная функция с undercase именем
>"=" без пробелов
Просто СЪЕБИ.

Ответы: >>500120

17 Июн, 18:31 #288 #498625

>>498296
[code lang="cpp"]
void delayedPrint (std::ostream & out, const std::string & input)
{
\tstd::for_each (input.begin (), input.end (), [] (const char & chr)
\t{
\t\tout << chr;
\t\tstd::current_thread::sleep_for (std::chrono::milliseconds (10);
\t});
\tout << std::endl;
}
[/code]

17 Июн, 18:39 #289 #498630

Братишки, а замерьте кто-нибудь время создания на среднестатистической пекарне std::thread с пустой функцией, пожалуйста. Примерно хотя бы. Под рукой компилятора нет, а онлайновый может и хуйню показать, там же виртуалки и все дела. Вот что-то такое измерить я прошу:

auto start = std::chrono::high_resolution_clock::now ();
std::thread thr ([=] () {});
thr.detach ();
auto finish = std::chrono::high_resolution_clock::now ();
std::cout << (std::chrono::duration_cast <std::chrono::milliseconds> (finish - start)).count () << std::endl;

Ответы: >>498714, >>498756

17 Июн, 20:57 #290 #498714

>>498630
Проверял на MinGW. Либо оно убирает (из-за оптимизаций, хотя я поставил -O0) все к чертям, либо протсо это все отрабатывает меньше чем за наносекунду (не говоря уж про милисекунды). Комп такой: https://www.asus.com/Notebooks_Ultrabooks/N56VZ/

Ответы: >>498717, >>498859

17 Июн, 21:00 #291 #498717

>>498714
>просто
Не_особо_быстро_фикс

sage 17 Июн, 22:10 #292 #498756

>>498630
Ну охуеть теперь, проверять производительность наносекунд.
Чем заниматься наноизмерениями, лучше создай 9000 таких тредов в цикле и раздели результат на 9000.

18 Июн, 00:34 #293 #498839

>>497533
Не все ли потеряно, если мне через месяц 22 и я на начале лвл 2? По спецухе инженегр, кресты нужны для всяких конечно-элементных матанов.

Ответы: >>498861

18 Июн, 00:46 #294 #498845

Господа, пробежался по треду, но так и не нашел литературы для энтрилевельных после паскаля для ЕГЭ. Не могли бы вы спалить годноты?

Ответы: >>498847

18 Июн, 00:53 #295 #498847

>>498845
Лафоре или Прата.

18 Июн, 01:30 #296 #498859

>>498714
Спасибо, няш, добра тебе. Потом проверю в цикле еще, но пока можно считать, что оно быстро создается. А то я чота внезапно сел на измену из-за подозрений в медлительности и стал придумывать, как поточный пул подружить с std::async, лол.

18 Июн, 01:32 #297 #498861

>>498839
Если постараешься, энивей сможешь выгодно отличаться от среднестатистической макаки.

18 Июн, 01:35 #298 #498862

g++ vs VC++ vs clang
Дискач.

Ответы: >>498893, >>498998

18 Июн, 02:36 #299 #498870

Посоны, сам занимаюсь вебом, понадобилось поправить исходник софта на С. Я в этом нихуя не понимаю, скажу сразу. Суть в том, что надо проверить вхождение одной строки в другую через strstr. У меня есть строка, в которой надо искать, типа char (обычный, не указатель), она уже задана в исходнике. Строку, которую надо искать, я могу ввести сам. Вопрос: как все это сделать?
char haystack[7] = "abcdef"; // это уже есть в исходнике
Пробовал добавить
char needle[5] = "abcd";
и потом strstr(haystack, needle);
но нихуя не работает. Как будет правильно?

Ответы: >>498875

18 Июн, 03:15 #300 #498875

>>498870
А не, все нормально. Поздно уже, в глаза долблюсь.

sage 18 Июн, 06:51 #301 #498893

>>498862
Говно vs моча vs конча.

18 Июн, 13:22 #302 #498998

>>498862
На хуй иди.

19 Июн, 17:11 #303 #499725

Пацаны, подскажите ньюфагу, как использовать new для объявления указателя типа int()[5]? К примеру, я пишу:
[code]int (ptrm)[5];
ptrm = new int(*)[5];[/code]
но компилятор не хочет, отказывается. Как быть? Вопрос чисто теоретический.

Ответы: >>499730, >>500066

19 Июн, 17:13 #304 #499730

>>499725
ptrm = new int*[5];

Ответы: >>499740

19 Июн, 17:21 #305 #499740

>>499730
Пробовал. Переставлял скобки, как только мог. Всё равно подчёркивается знак равно. Когда навожу курсор, пишет, что int °° нельзя присваивать int (°) [5]. Ещё пробовал вот так: ptrm = new (int (°) [5]). В таком случае компилятор пишет, что int (°°) [5] нельзя присвоить int (°) [5].

Ответы: >>499785

19 Июн, 17:47 #306 #499785

>>499740
А. Так, нельзя делать. Твой ptrm это кусок памяти на стеке, он не может стать указателем на кусок памяти в хипе. Но туда можно вписать новые данные с помощью placement new. https://ideone.com/jXv6pK

Ответы: >>499807, >>499820, >>500075

19 Июн, 18:03 #307 #499807

>>499785
Что-то я не очень понял. А при чем там массив указателей? Наверно, стоит немного подробней расписать, что я хочу сделать.
[code]int (*ptrm)[5], m[5];
ptrm = &m;[/code]
Здесь я присваиваю адрес какого-то конкретного массива. То есть у меня получается указатель на весь массив, а не на первый элемент. А возможно ли операцией new сделать тоже самое? Это и у меня и не получается.

Ответы: >>499820, >>500075

19 Июн, 18:16 #308 #499820

>>499807
Хотя я тут подумал. При моём объявлении (°ptrm) будет эквивалентно m, то есть статическому массиву. Тогда логично, что его не получится инициализировать через new, но в то же время ptrm значения присваивать можно. Кажется, я понял. Складывается ощущение, что я сказал то же самое, что и (>>499785). Или я не прав?

Ответы: >>499823

19 Июн, 18:20 #309 #499823

>>499820
Попробуй ptrm = (int (*)[5]) new (int[5])();

Ответы: >>499833, >>500075

19 Июн, 18:25 #310 #499833

>>499823
Работает. Хм. А что это вообще такое? Где про это почитать можно?

19 Июн, 23:33 #311 #500066

>>499725
Долбоеб. int (*prtm) [5] это "prtm есть указатель на массив из пяти интов". А ты создаешь через new "указатель на указатель на массив из пяти интов".

Ответы: >>500111, >>500196

19 Июн, 23:50 #312 #500075

>>499807
Во-первых, ты желаешь странного, ибо имя массива эквивалентно не считая тонкостей константному адресу его первого элемента. То есть, ты получаешь как бы указатель на указатель на первый элемент, но нахуя? Эта прослойка не нужна. Во-вторых, объявление new для типа T схематично выглядит так: T operator new (). То есть, если ты выделяешь место массиву экземпляров T, то вернется указатель на его первый элемент, в твоем случае элементы массива сами являются указателями, то есть, это будет int . Но вспоминаем, что массив это по сути T const, то есть, единожды созданному ты уже не можешь присвоить новый адрес. И это логично, потому что ему на стеке выделяется место для пяти интов, и если потом вдруг массив станет смотреть не на них, то они утекут, а деструктор для массива не обязательно совместим с delete [], которым положено очищать массив, выделенный через new. >>499823 здесь использовано функциональное приведение, скорее всего, оно дойдет до reinterpret_cast и заменит адреса бездумно. Работать это может, но далеко не обязано, ибо неопределенное поведение. В третьих, >>499785 кун прав, в рамках ровно такой задачи лучше всего сделать так. Но это таки неестественная и извращенная хуйня, поэтому, в четвертых, используй контейнеры std::vector и умные указатели и не еби достопочтенным плюсогосподам мозги.

Ответы: >>500076, >>500196

19 Июн, 23:50 #313 #500076

>>500075
Звездочки просрались, ну и похуй.

20 Июн, 02:45 #314 #500111

>>500066
this
и мы снова возвращаемся к теме о том ЧТО МАССИВ ЭТО НЕ УКАЗАТЕЛЬ БЛЯДЬ

20 Июн, 04:05 #315 #500120

>>498612

С плюсами только знакомлюсь, хули

20 Июн, 12:31 #316 #500196

>>500066
Сам ты долбоёб. Я ньюфаг. Мысль понял. Разницу почувствовал.

>>500075
>ты получаешь как бы указатель на указатель на первый элемент
Ну да, и хочу его инициализировать.
>но нахуя
Для себя. Чтобы понять суть работу всей этой хуйни.
>используй контейнеры std::vector и умные указатели
С радостью. Но всё же интересно копнуть немного поглубже. Хотя постепенно, я думаю, придёт понимание таких деталей.

То есть, как я понял, у меня не получится через new выделить память для указателя на пять интов?
[code]int (p)[5];
p = new (int()[5]); // не работает и нет способа заставить?
int (p)[5];
p = new (int(*)[5]); // работает[/code]

Ответы: >>500978

21 Июн, 03:29 #317 #500645

Крестопетухи должны страдать.

Ответы: >>500675

99 Кб, 576x463

sage 21 Июн, 07:18 #318 #500675

>>500645

21 Июн, 08:01 #319 #500681

Как с ncurses передать color в качестве аргумента функции?
Или это будет в виде, если учитывать что в ncurses 8 цветов, в виде ебического case?

Хочу что-то написать функцию вида:

drawCharLikePixel (int x, int y, color_foreground, color_background)
{
^- это макросы, какой тип?
}

Ответы: >>500699

21 Июн, 10:40 #320 #500699

>>500681
Читай документацию, одним постом не объяснишь.

21 Июн, 16:06 #321 #500789

Привет, крестовики. Дело в том что надо накатить вижуал студио,которая IDE что бы для UE4 че-нить писать, но я нихуя не понял какой качать.Не подскажите? Будьте добры.

Ответы: >>500981

21 Июн, 16:40 #322 #500798

Бля, я наверное имбицил, но почему ебаный zlib не хочеть разжимать ссаный vector?

[CODE lang="cpp"]
// Есть два ветора:
vector<uint8_t> compressedData; // Сжатые данные, размер известен
vector<uint8_t> uncompressedData; // Вектор для распакованных данных, размер после распаковки заранее известен

unsigned long uncompressedDataSize = 1234567; // Собственно вот и он
uncompressedData.reserve(uncompressedDataSize); // Выделяем память

uncompress(&uncompressedData[0], &uncompressedDataSize, &compressedData[0], compressedData.size()); // Пытаемся распаковать compressedData в uncompressedData
[/CODE]

И самое забавное в том, что до uncompress uncompressedData.capacity() показывает верный размер резерва, а вот после - уже нуль...

Ответы: >>500810, >>500811

sage 21 Июн, 17:00 #323 #500810

>>500798
потому что reserve не всегда выделяет память. Используй либо resize(), либо конструктор с указанием размера vector<uint8_t> udata(size)

Ответы: >>500813

21 Июн, 17:02 #324 #500811

>>500798
А что uncompress возвращает? Не ошибку. Попробуй к данным вектора получать доступ черед .data() твой способ возможно хуита, operator[] же метод, когда он возвращает нулевой елемент он скорее всего создает копию и ложит ее на стек, и беря адрес возвращаемого элемента ты берешь адрес временной переменной на стеке вызовов, а не адрес начала данных вектора.

Ответы: >>500813, >>500854

21 Июн, 17:12 #325 #500813

>>500810
> потому что reserve не всегда выделяет память. Используй либо resize(), либо конструктор с указанием размера vector<uint8_t> udata(size)
И правда, теперь uncompressedData полный нулей, лол.

>>500811
> А что uncompress возвращает? Не ошибку.
Точно, совсем забыл что он возвращает что-то.
Выдаёт Z_DATA_ERROR. Что с operator[], что с .data().

Ответы: >>500832

21 Июн, 17:49 #326 #500832

>>500813
Посмотрел первые 2 байта в compressedData - 78 9C.
Таки там zlib с дефолтной компрессией, а то я уже начал было сомневаться...

Ответы: >>500837

21 Июн, 17:58 #327 #500837

>>500832
Попробуй для теста выгрузи входной вектор в массив и отдай массив. Проблема с данными же. Входной вектор тоже черз data() передавал?

Ответы: >>500841

21 Июн, 18:08 #328 #500841

Бляяя, пиздос...
Я заполнял вектор из файла с помощью istream_iterator, в итоге файл читался не до конца.
Починилось через .unsetf(ios::skipws)

>>500837
Теперь работает и через &vector[0] и через vector.data()

sage 21 Июн, 18:52 #329 #500854

>>500811
он возвращает ССЫЛКУ на нулевой элемент и никаких копий никогда не создает.

21 Июн, 22:36 #330 #500978

>>500196
Ты не совсем понял видимо, няш. Нет понятия "указатель на пять интов". Есть "массив из пяти интов", он выделяется только на стеке (не в куче, не через new), а после выделения эквивалентен константному указателю на инт. Ты можешь с помощью new выделить место для указателя на указатель на инт, тогда в куче отведется место для единственного указателя (а не содержимого по его адресу), а тебе вернется указатель на эту область памяти, смекаешь? Потом ты можешь отдельно создать массив из пяти интов на стеке, а его адрес положить в то место в куче, типа:

[code lang="cpp"]
int array [5];
int ptr_to_ptr = new int ;
ptr_to_ptr = array;
[/code]

Теперь у тебя фактически ptr_to_ptr это указатель на массив из пяти интов, но его типом как был указатель на указатель на инт, так и остался. Такие дела.

Ответы: >>501132, >>501183, >>501581

21 Июн, 22:41 #331 #500981

>>500789
Есть два стула. MSVS 2013 это последний оффициальный тм релиз, стабильный. Есть MSVS 2015 Release Candidate, по факту это то, что станет релизной версией MSVS 2015. Там много новых плюшек наподобие инструментов рефакторинга, но могут быть баги, хотя вряд ли. Естественно, тебе нужна 2013 версии Ultimate либо 2015 RC версии Enterprice.

22 Июн, 04:00 #332 #501132

>>500978
>Есть "массив из пяти интов", он выделяется только на стеке (не в куче, не через new)
штобля? auto x = new int[10]; ← это что бля?

>Нет понятия "указатель на пять интов".
а не пиздишь? http://ideone.com/AB31yZ

Ответы: >>501176

22 Июн, 08:34 #333 #501176

>>501132
1. Лолблядь. Ну подведи мышку-то к auto, и увидишь, какой там на самом деле тип. Повторюсь, понятие массива - это еще с C одна большая обертка над int const, который указывает на какой-то инт, за которым гарантируется последовательное размещение вплотную еще нескольких интов по числу элементов в "массиве". Обращение к ним по array [ctr] из той же серии, оно сразу преобразуется в разыменование array + ctr, это синтаксически эквивалентная конструкция, которая запилена для удобства школьников, пришедших с паскаля. Само понятие массива стандартом определено только для автоматических и глобальных переменных. new просто не умеет оперировать понятием "массив", она выделит место для пяти интов подряд и вернет указатель на первый. Этот указатель потом можно запихнуть в константый указатель, и после этого работа с ним не будет отличаться от работы с массивом, можно писать ptr [ctr] и все дела. Но это не будет массивом, тем не менее, потому что само определение массива предполагает автоматическое выделение памяти на стеке и инициализация указателя, который скрыт под оберткой массива, ее адресом. А поскольку он константный, ты уже не сможешь его сделать указывающим на что-то, выделенное в куче, даже если это несколько интов подряд.
2.
[code lang="cpp"]
class TvoyaMamka {};
TvoyaMamka ptr;
[/code]

Видишь, у нас есть указатель на твою мамку. Но это не часть языка, а вновь описанная сущность, не имеющая никакого отношения ко встроенным типам данных. С typedef то же самое.

Ответы: >>501179, >>501259

22 Июн, 08:36 #334 #501179

>>501176
Расшатанное обезьяной говно, там же только одна звездочка была, епту. В первой строке int * const.

285 Кб, 500x227

22 Июн, 08:50 #335 #501183

>>500978
[code lang="cpp"]
std::vector <int> vect;
vect.resize (5);
std::unique_ptr <int > ptr_to_ptr = std::make_unique <int > ();
*ptr_to_ptr = vect.data ();
[/code]

22 Июн, 11:51 #336 #501259

>>501176
>понятие массива - это еще с C одна большая обертка
съебал нахуй, дебил блядь
массив это сущность, школьник сраный

>само определение массива предполагает автоматическое выделение памяти на стеке
блядь, мозг рака

а тебе дал пример выше дебилушка, http://ideone.com/AB31yZ

[code]
typedef int pyat_intov[5];
typedef pyat_intov* ukazatel_na_pyat_intov;

ukazatel_na_pyat_intov kakaya_to_peremennaya = new pyat_intov[4];
[/code]
какой тут стек, нахуй? что ты несешь вообще? вообще охуеть

Ответы: >>501589, >>501608

93 Кб, 680x417

sage 22 Июн, 18:52 #337 #501462

Два дебила это сила.

Ответы: >>501592

5 Кб, 204x204

22 Июн, 20:48 #338 #501541

Господа, пару месяцев изучаю Джаву. Но тут внезапно увидел у себя в мухосранске бесплатные курсы по C++ от одной фирмы. Но там есть требования к кандидату.

Записываясь на курсы, кандидат должен знать следующие темы C++:

- типы данных;
- переменные, области видимости;
- операторы «выражение», ветвления, цикла, передачи управления;
- массивы, указатели;
- функции, процедуры, формальные параметры;
- перечисления (enum);
- структуры (struct);
- классы (class).

Так вот вопрос. Если я эти 2 месяца учил Java Core и задрачивал квизы, то за сколько реально выучить все из этого списка по C++? Языки же вроде похожи.

Ответы: >>501556, >>501561

sage 22 Июн, 21:00 #339 #501556

>>501541
За полчаса, если знаешь жабьи аналоги.

44 Кб, 641x762

22 Июн, 21:02 #340 #501560

>>489539
Доброго времени суток!
В QT есть замечательный контейнер QSet, отвечающий за множества, и мне нужно научиться передавать эти контейнеры, как аргументы функций, и научить функции возвращать множества, как результат. Напрямую не получилось, теперь думаю работать с указателями.
Это вообще возможно, и если возможно, то как?

Ответы: >>501565

22 Июн, 21:03 #341 #501561

>>501541
Час где-то. Ты там все должен знать кроме указателей и классов. Ну и перечисления там в джаве вроде другие немного.

22 Июн, 21:07 #342 #501565

>>501560
Указатели. Передаешь, возвращаешь. Лучше конечно с сылками работать, но там куча нюансов. Сделай сейчас на указателях и разбирайся с ссылками - там конструкторы копирования, move семантика это все.

Ответы: >>501568, >>501652

22 Июн, 21:12 #343 #501568

>>501565
Понял, спасибо.
Сегодня ночью буду разбираться.

22 Июн, 21:29 #344 #501577

Плюсаны, поясните, в какой программе вы пишите и компилируете исходный код?

Ответы: >>501582, >>501597, >>501629

22 Июн, 21:33 #345 #501581

>>500978
>Нет понятия "указатель на пять интов"
Давай по порядку. int m[5] — это массив из пяти интов. m — указатель на первый элемент массива, то есть то же самое, что и &m[0]. А вот &m (ВНЕЗАПНО равный m) — это адрес всего массива и именно из из пяти элементов. Разница между ними будет проявляться при арифметике: m + 1 = &m[1], а &m + 1 = (по факту) &m[6]. А, ещё sizeof разные результаты будет возвращать.
запутали_ньюфага_окончательно

Ответы: >>501784

22 Июн, 21:36 #346 #501582

>>501577
Microsoft Visual Studio Express 2013.

Ответы: >>501588, >>501597, >>501598, >>501620

22 Июн, 21:40 #347 #501588

>>501582
>Microsoft Visual Studio Express 2013
Почему именно эта?

Ответы: >>501595

22 Июн, 21:42 #348 #501589

>>501259
>сущность
>обертка
Никакого противоречия же. Синтаксический сахар в чистом виде. Я даже не поленюсь открыть стандарт и накормить тебя хуями:

4.2.1 An lvalue or rvalue of type “array of N T” or “array of unknown bound of T” can be converted to a prvalue
of type “pointer to T”. The result is a pointer to the first element of the array.

8.3.4.6 Except where it has been declared for a class (13.5.5), the subscript operator [] is interpreted in such
a way that E1[E2] is identical to *((E1)+(E2)).

>пример
В твоем примере нет сущности "массив". И стека нет поэтому. Ты просто выделяешь место в куче для четырех последовательных объектов, они не будут массивом:

5.3.4.5 Note: both new int and new int[10] have type pointer to int.

А твой пример вообще не скомпилируется, дауненок, ты же пытаешься присвоить указатель на инт указателю на указатель на инт. Тайпдефы разжижают мозг, агагагаг.

Ответы: >>501606, >>501776

22 Июн, 21:44 #349 #501592

>>501462
Ну что ты, браток, все ж мы люди. Хочешь, расскажу, как я шаблонный класс писал? Написал-то я его быстро, минут десять всего. Ну а потом поебалися.

22 Июн, 21:46 #350 #501595

>>501588
Потому что просто хобби. На сперму самое то.

22 Июн, 21:46 #351 #501597

>>501577
Microsoft Visual Studio Ultimate 2013. Это как >>501582, но с профилировщиком и тестами.

Ответы: >>501598

22 Июн, 21:47 #352 #501598

>>501597
>>501582
Кстати, они, вроде платные. Вы пиратки юзаете?

Ответы: >>501601, >>501631

22 Июн, 21:48 #353 #501601

>>501598
Express бесплатная.

Ответы: >>501602, >>501603

22 Июн, 21:49 #354 #501602

>>501601
Спасибо!

22 Июн, 21:50 #355 #501603

>>501601
Я тут почитал, она, что ли, с браузера или как-то так работает?

22 Июн, 21:51 #356 #501605

А нет, там 3 версии - веб, десктоп и виндовс.
Только я не понял чем десктоп от виндовс отличается.

Ответы: >>501607

22 Июн, 21:53 #357 #501606

>>501589
>А твой пример вообще не скомпилируется, дауненок, ты же пытаешься присвоить указатель на инт указателю на указатель на инт.
дебилушка не может даже открыть ссылку или скомпилировать самостоятельно?

>can be converted
это переводится как "может быть преобразовано", даун ебучий

>В твоем примере нет сущности "массив".
а что такое за тип pyat_intov?

>Ты просто выделяешь место в куче для четырех последовательных объектов, они не будут массивом
это будет двумерным массив, сын идиотки

имбецил сраный, если у тебя char может быть сконверчен к int'у, то это не значит что это одинаковые типы

пошел вон из профессии, мудило

Ответы: >>501630

22 Июн, 21:54 #358 #501607

>>501605
У меня десктоп. виндовс вроде для разработки на windows phone и маркет 8.1. Точно уже не помню.

Ответы: >>501611

22 Июн, 21:54 #359 #501608

>>501259
если создалось что-то под названием массив, то это либо объект (тогда где его конструктор?) либо примитивный тип (тогда почему его нет в жестко регламентированном списке примитивных типов?) либо функция (без комментариев). какая-то хуевая у тебя концепция выходит - создалось непонятно что из нескольких чисел в куче, new вернул указатель на число, а ты кукарекаешь про какие-то массивы. говна наверни в общем, манька паскальная

Ответы: >>501621

22 Июн, 21:56 #360 #501611

>>501607
Там обязательно иметь микрософт аккаунт? А то при загрузке меня на регистрацию кидает.

Ответы: >>501613

22 Июн, 21:58 #361 #501613

>>501611
Вроде да.

Ответы: >>501615

22 Июн, 22:00 #362 #501615

>>501613
Ты зарегистрировал на левый акк?

Ответы: >>501622

sage 22 Июн, 22:05 #363 #501620

>>501582
Visual Studio Community 2015 - бесплатная и со всеми фичами. Плюс еще и с++11 доработан.

Ответы: >>501633, >>501641

22 Июн, 22:05 #364 #501621

>>501608
сам наверни говна

3.9.2 Compound types
[basic.compound]
Compound types can be constructed in the following ways:
— arrays of objects of a given type, 8.3.4;
— functions, which have parameters of given types and return void or references or objects of a given
type, 8.3.5;
— pointers to void or objects or functions (including static members of classes) of a given type, 8.3.1;
— references to objects or functions of a given type, 8.3.2;
— classes containing a sequence of objects of various types (clause 9), a set of types, enumerations and
functions for manipulating these objects (9.3), and a set of restrictions on the access to these entities
(clause 11);
— unions, which are classes capable of containing objects of different types at different times, 9.5;
— enumerations, which comprise a set of named constant values. Each distinct enumeration constitutes a
different enumerated type, 7.2;
45)
— pointers to non-static
class members, which identify members of a given type within objects of a
given class, 8.3.3.

далее твой ротик я обрабатываю мочой из примеров из стандарта:

[code]
typedef int A[5], AA[2][3];
typedef const A CA; // type is ‘‘array of 5 const int’’
typedef const AA CAA; // type is ‘‘array of 2 array of 3 const int’’
[/code]

Ответы: >>501640

22 Июн, 22:05 #365 #501622

>>501615
Да думаешь я помню. Вообще, вроде нет, ибо у меня тогда была учётка для Windows Phone.

22 Июн, 22:11 #366 #501629

>>501577
Пишу в виме, компилю в gcc или clang в зависимости от того, на какой платформе пишу.

Ответы: >>501643

22 Июн, 22:11 #367 #501630

>>501606
>дебилушка не может даже открыть ссылку или скомпилировать самостоятельно?
>ты че сука охуел штоле какие еще предупреждения компилятора отключи их нахуй че как ссыкло епту
Ну, если так рассуждать, то все указатели одинаковые, раз компилятор их может привести друг к другу.
>может быть преобразовано
Именно. И еще второй абзац. В сумме это дает как раз понятие "обертка". Для долбоебов - "А есть обертка В" ~ "над В допустимы все операции, допустимые над А, и при трансляции А реализуется при помощи В".
>это будет двумерным массив
Кое-то не знает разницы между многомерными массивами и неровными массивами, лол.
>это не значит что это одинаковые типы
Чар конвертится неявно в инт => везде чар может использоваться вместо инта.
Массив конвертится неявно в указатель => везде массив может использоваться вместо указателя.
Оба утверждения повторяют первую часть определения обертки. Я не понимаю, лалка, ты нахуя берешь очевидные вещи, сдабриваешь их руганью и пытаешься сделать вид, что они доказывают что-то противоположное?

Ответы: >>501642

22 Июн, 22:12 #368 #501631

>>501598
У меня Dreamspark.

22 Июн, 22:12 #369 #501633

>>501620
Так что лучше-то?

Ответы: >>501634, >>501636

22 Июн, 22:13 #370 #501634

>>501633
Ставь 2015. Я бы тоже поставил, но пока не до этого.

sage 22 Июн, 22:14 #371 #501636

>>501633
Нет ничего лучше или хуже, дело вкуса. Попробуй Visual Studio 2015, не понравится — ищи другую IDE.

22 Июн, 22:17 #372 #501640

>>501621
>составные типы
>примитивные типы
почувствуй разницу, щенок. и ты за мифические массивы в куче не ответил. new возвращает по ним указатель, где же твой б-г?

Ответы: >>501653

22 Июн, 22:18 #373 #501641

>>501620
А кто-нибудь в курсе, кстати, когда релиз у нее? Не хочу ставить RC, потом сносить еще придется лишний раз.

22 Июн, 22:20 #374 #501642

>>501630
>>ты че сука охуел штоле какие еще предупреждения компилятора отключи их нахуй че как ссыкло епту
быстро взял и показал где там ворнинги

>Ну, если так рассуждать, то все указатели одинаковые, раз компилятор их может привести друг к другу
ты дебил? implicit conversion для указателей нет

>при трансляции А реализуется при помощи В
господи, что за хуйню я читаю?

>Кое-то не знает разницы между многомерными массивами и неровными массивами, лол.
ты?

>Чар конвертится неявно в инт => везде чар может использоваться вместо инта.
съебал из профессии, быдло. переполнениями обмазываться будешь, когда тебя никто не видит, мразь

>везде массив может использоваться вместо указателя
ой блять, у тебя рак

Ответы: >>501668

22 Июн, 22:21 #375 #501643

>>501629
Ем говно, испражняюсь дерьмом или мочой в зависимости от того, с какой стороны.

22 Июн, 22:23 #376 #501652

>>501565
Так, окей, а как работать с указателями на контейнеры? Как динамически выделять для них память?

Ответы: >>501660, >>501786

22 Июн, 22:24 #377 #501653

>>501640
>и ты за мифические массивы в куче не ответил
не ебись в глаза, школомразь: http://ideone.com/AB31yZ
или ты так и будешь орать ВРЁТИИИ?

Ответы: >>501686

9 Кб, 402x205

22 Июн, 22:24 #378 #501656

Что мне потом понадобится?

Ответы: >>501658, >>501671, >>501699

22 Июн, 22:26 #379 #501658

>>501656
Это знает только Аллах, у него и спрашивай.

Ответы: >>501661

22 Июн, 22:26 #380 #501660

>>501652
QSet* set = new QSet();

Ответы: >>501666

22 Июн, 22:27 #381 #501661

>>501658
Ну, я начинающий С++ программист, пока читаю книгу...

Ответы: >>501679

22 Июн, 22:29 #382 #501666

>>501660
Но ведь надо указывать, какого типа будет множество. Т.е.
QSet<QString> *set = new QSet<QString>()?

Ответы: >>501688

10 Кб, 1070x224

519 Кб, 1872x2676

22 Июн, 22:35 #383 #501668

>>501642
>переполнениями обмазываться будешь
Покажи мне метод, который принимает int, но не может принять char без переполнения.
>implicit conversion для указателей нет
>сарказм? какой сарказм?
Я это и имел в виду, дурачок. Неявно не преобразуются, вот предупреждения (пикрелейтед 1).
>ты?
К несчастью для тебя, нет.
>господи, что за хуйню я читаю?
Рекомендую пикрелейтед 2.

Ответы: >>501682

sage 22 Июн, 22:38 #384 #501671

>>501656
Ничего из этого. Серьезно. Я еще удаляю половину дерьма что он по умолчанию ставит.

Ответы: >>501676

22 Июн, 22:39 #385 #501676

>>501671
Даже фаундейшн С++ классы? Мне кажется что они важны.

22 Июн, 22:41 #386 #501679

>>501661
Если места много, ставь всё. Потом сам разберёшься, что нужно, а что нет.

22 Июн, 22:41 #387 #501682

>>501668
>Покажи мне метод, который принимает int, но не может принять char без переполнения.
>везде чар может использоваться вместо инта
ты болен мозгом рака?

>Неявно не преобразуются, вот предупреждения (пикрелейтед 1).
спермовор не человек. пользуйся нормальными компиляторами, а не индусскими отбросами

>Рекомендую пикрелейтед 2.
мудачок, тогда все языки программирования суть синтаксический сахар над байтиками.
а вопрос изначально был об отсутствии идентичности (с точки зрения плюсом) между массивами и указателями
обтекай короче

Ответы: >>501694

4 Кб, 503x135

22 Июн, 22:47 #388 #501686

>>501653
Какой же ты тупой, блядь. Господи, спаси грешную душу этого убогого, ибо он не ведает хуйни, которую несет.

Ладно, давай по-другому. Ты считаешь, что в твоем примере kakaya_to_peremennaya указывает на мифический "массив в куче"? Да? А вот компилятор улыбается и кладет хуй тебе на лобешник. Гляди сюда, болезный, видишь, какой тип после разыменования? Массивом и не пахнет.

Ответы: >>501694, >>501701

22 Июн, 22:48 #389 #501688

>>501666
И еще, как множество выводить? Стандартный способ, как в документации, т.е.
QString buf // строка для вывода множества;
QSet<QString> str = new QStr<QString>;
QSetIterator<QWidget > i(str);
while (i.hasNext()) buf << i.next();

Грит

ошибка: no matching function for call to 'QSetIterator<QWidget>::QSetIterator(QSet<QString>&)'
QSetIterator<QWidget > i(str);
^

Ответы: >>501691

22 Июн, 22:49 #390 #501691

>>501688
str, естественно, указатель.

22 Июн, 22:50 #391 #501694

>>501682
на это что скажешь? >>501686
мимокрок
не думал, что в крестотреде такая жара

22 Июн, 22:54 #392 #501699

>>501656
GitHub я бы поставил, хотя из консоли тоже удобно. Остальное хуета на мой взгляд.

22 Июн, 22:58 #393 #501701

>>501686
>Какой же ты тупой, блядь. Господи, спаси грешную душу этого убогого, ибо он не ведает хуйни, которую несет.
себя отпевай, хрюс

>Гляди сюда, болезный, видишь, какой тип после разыменования? Массивом и не пахнет.
и ты опять насрал себе в штаны, показав implicit conversion между массивами и указателями: http://ideone.com/NKsY1X

>А вот компилятор улыбается
на пике IDE, даунит спермоворный

Ответы: >>501776

23 Июн, 00:14 #394 #501776

>>501701
>на пике IDE
Если ты думаешь, что после раскрытия auto непосредственно компилятором там будет что-то другое, то у меня для тебя плохие новости.
>и ты опять насрал себе в штаны
Ты полтреда сидишь на большой куче говна внутри кальсон и визжишь, что все вокруг соснули, хотя сам же запилил пример, который выводит int and x is 1 и показывает твой эпичнейший обосрамс.
>implicit conversion между массивами и указателями
Воистину, это так, я об этом говорил еще здесь >>501589, ебанько ты пиздоглазое. Не преобразуются твои говнотайпдефы только. И к твоему примеру отношения не имеет. char y; auto x = y каким типом x сделает? Правильно, упоротый кусок говна, это будет char ! Знаешь почему char, а не int, не double, не твоя мамаша-шлюха, описанная с соответствующим конструктором из char? Потому что похуй, к чему char неявно приводится, auto поставит настоящий тип. В твоем примере то же самое, имбицил, и способность массивов приводиться к указателям не играет никакой роли. x указатель на инт не потому что к нему что-то неявно привелось, а потому что kakaya_to_peremernnaya и есть указатель на инт, блядь. Какой же ты даун, если этого не понимаешь даже с таким подробным объяснением, просто пиздец. Возможно, тебе стоит временно прикрыть этот невыносимый поток хуеты, прочесть хотя бы какой-нибудь крестоучебник а-ля "кресты для нюфань за 21 день", или перейти на язык с динамической типизацией, если не можешь осилить элементарные вещи, ну или просто СЪЕБАТЬ и не смешить людей своим кукареканьем в серьезном треде.

Ответы: >>501796

23 Июн, 00:30 #395 #501784

>>501581
Все верно. Там есть нюансы касательно sizeof (). Если хочешь, можешь почитать стандарт, там нормально описано. Если вкратце - после первой же операции или присваивания чему-то еще размер станет неизвестным. Это происходит потому что размер массива - характеристика имени, а не адреса. А поскольку массивы не присваиваются напрямую, можно сохранять размер при ручном копировании в новый массив только объявляя его как T new_arr [sizeof (old_arr)] или что-то подобное делать.

23 Июн, 00:32 #396 #501786

>>501652
Используя ссылки и не выебывайся

Ответы: >>501807, >>502584

23 Июн, 01:11 #397 #501796

>>501776
>говнотайпдефы
ну пизда ты сейчас огребаешь
если ты не понимаешь типизацию в плюсах, то пиздуй в детский сад, мразь. именно там рассказывают про типы, implicit/explicit приведения и прочие важные вещи

>auto x = y каким типом x сделает?
согласно ПРАВИЛАМ TEMPLATE ARGUMENT TYPE DEDUCTION, имбицил позорный

>auto поставит настоящий тип
сэр пидор ебаный не знает даже про decltype(auto), гнида ты подшконочная?

>потому что ∗kakaya_to_peremernnaya и есть указатель на инт, блядь.
пидор гнойный, это lvalue reference, ты не можешь поменять адрес здесь, гнида паскудная
ты хотя бы сначала код смотрел, потом думал, а потом постил свои ничтожные высеры. там же блядь напрямую через std::is_same сравнение делается, глазоёб сраный

>Возможно, тебе стоит временно прикрыть этот невыносимый поток хуеты, прочесть хотя бы какой-нибудь крестоучебник а-ля "кресты для нюфань за 21 день", или перейти на язык с динамической типизацией, если не можешь осилить элементарные вещи, ну или просто СЪЕБАТЬ и не смешить людей своим кукареканьем в серьезном треде.
ТЫ УЖЕ ДОКАЗАЛ СВОЁ ЕБУЧЕЕ НЕЗНАНИЕ ОСНОВ, ПИТОНИСТ СРАНЫЕ
СЪЕБАЛ НА СВОЮ ДЖАНГУ-ХУЯНГУ, ОТБРОС ДИНАМИЧЕСКИЙ, ПОХАПИСТ АССОЦИАТИВНЫЙ!

23 Июн, 01:31 #398 #501807

>>501786
Хорошо, не буду выебываться.
При использовании ссылок какие тонкости есть?

Ответы: >>501844, >>501941

23 Июн, 02:12 #399 #501844

>>501807
А вот какие тонкости есть, епт.
Я QSet<QString> str создавал, как поле класса MainWindow, чтобы к нему и обращаться со всех кнопок на форме, причем когда создаю указатель на контейнер, то все ок, собирается, а когда создаю сам объект, то говорит, что неверный тип.

Ответы: >>501917

sage 23 Июн, 04:50 #400 #501917

>>501844
Тебе рано использовать библиотеки и фреймворки, выучи основы языка сначала.

23 Июн, 08:43 #401 #501941

>>501807
Нельзя изменить значение ссылки, сам объект можно. Но старайся использовать const везде где сможешь.

23 Июн, 08:48 #402 #501944

Зачем нужны STL итераторы?

Ответы: >>501961

23 Июн, 09:40 #403 #501961

>>501944
Для унифицированного доступа к stl контейнерам. Скрывают детали реализации доступа к элементам.

16 Кб, 952x348

23 Июн, 13:51 #404 #502114

Поясните, как компилировать и запускать код в вашем вижуале?
Написал простенький код из книги, обсмотрел программу, не нашёл компиляции.
Есть какое-то непонятное присоединение.

Ответы: >>502121, >>502132

23 Июн, 13:56 #405 #502121

>>502114
При чем, есть какая-то странная компиляция - ктрл + Ф7, но программа выдает непредвиденные ошибки.

23 Июн, 14:16 #406 #502132

>>502114
Я вижуалом в общем-то не пользуюсь, но:
Судя по всему, ты просто создал файл cpp, а должен создать проект. Тогда
файл -> создать проект -> С++ - пустой проект -> обозреватель решений -> "файлы исходного кода" -> создать элемент -> Файл c++
Там пишешь свой код. Должно заработать.

Ответы: >>502135

23 Июн, 14:24 #407 #502135

>>502132
Cпасибо.
А чем файл от проекта отличается?
Вроде и там и там .сср файлик и всё. Хотя, в проекте, вроде, еще шапка есть.

Ответы: >>502170

23 Июн, 15:16 #408 #502170

>>502135
Проект это, грубо говоря, список файлов + настройки для сборки этих файлов.

23 Июн, 17:56 #409 #502357

>>489539
> Тег [code] работает через жабаскрипт-костыль: https://github.com/ololoepepe/MakabaCode
У меня одного он не работает?

23 Июн, 18:42 #410 #502394

Почему никто не делает нормальную шапку?

23 Июн, 18:49 #411 #502400

Кто работает в вижуале - поясните, у меня есть 2 файла с кодом, как сделать так, чтобы выполнялся только 1 из них?
Вот: Source2 и Source.

Ответы: >>502401, >>502415, >>502476

8 Кб, 535x337

23 Июн, 18:49 #412 #502401

>>502400
Скрин.

Ответы: >>502409

23 Июн, 18:54 #413 #502409

>>502401
Переименовать функцию main

Ответы: >>502412

23 Июн, 19:01 #414 #502412

>>502409
Запускается, но, только странно: запускается код с окна Source, а не Source2.
Как я понял они одновременно выполняются?

23 Июн, 19:05 #415 #502415

>>502400
Функция main должна быть только одна.

Ответы: >>502418

23 Июн, 19:07 #416 #502418

>>502415
Да, я поменял функцию, но если я запускаю - выполняется только source, который я 1 написал и сохранил. А сурс2 выполняется только если я всё удалю в сурс1.

Ответы: >>502476

23 Июн, 20:00 #417 #502476

>>502418
>>502400
Бамп вопросам!

Ответы: >>502506

sage 23 Июн, 20:40 #418 #502506

>>502476
Один проект — одна программа.

23 Июн, 21:50 #419 #502584

>>501786
А вот хрен я что придумал нормального с сылками.
Зато сделал с указателями неплохой рабочий вариант.
В описани формы указатель на множество, все кнопки принимают этот указатель и возращают его же, и отлично все собралось и работало.
Говнокод конечно форму засорять лишними данными, но это лаба, так что похуй.

А вот на что не похуй, так это как с формой связать логику программы в, скажем, main?
Вот есть данные в main, и есть отдельная форма с исходниками и отдельным ui, так как научить форму обращаться к данным в main и наоборот?

Ответы: >>502624, >>502717, >>502777

23 Июн, 22:51 #420 #502624

>>502584
Ссылка это разыменованный указатель. Если не нужен нулевой указатель, можно легко менять на ссылку. А тебе надо почитать хотя бы c++ за 21 день. Или шилдта. И учебник по кутэ, на сайте есть достаточно туториалов.

24 Июн, 02:18 #421 #502717

>>502584
Пиздец, я дожил до того дня, когда школьники спрашивают про логику уже после создания ФОРМОЧЕК.
миморисовал окна попиксельно в TurboPascal под DOS в твоем возрасте

24 Июн, 02:58 #422 #502732

Чёрт! Кажется, я прострелил себе ногу...

24 Июн, 08:21 #423 #502777

>>502584
Передаешь ссылки/указатели на структуры данных из main при создании формы или потом в методах. Почитай про MVC.

Ответы: >>502783

24 Июн, 08:42 #424 #502783

>>502777
Он теперь сюда придёт всякую херню про мвц спрашивать

24 Июн, 12:55 #425 #502907

(В очередной раз наткнулся в интернетах на срач, в очередной раз не очень понимаю его источник, решил спросить на бордах)

Поясните мне по хардкору сакральный смысл private и protected. В смысле - нахуя они всё же нужны на практике? Хипстерота в инторнетах упорно твердит подхваченные откуда-то выражения в стиле "public variables = bad programming practice", ничем эти слова не подкрепляя. А у меня в рабочем коде высоконагруженного приложения на сотню тысяч строк ни разу не встречаются эти два слова. Слово class тоже не встречается, если что. Всё делаю через struct, все переменные публичные - и всё работает заебись, держит ~20000 одновременно подключенных клиентов, не течёт, не сбоит.
А мне говорят - bad programming practice. Соответственно в очередной раз возникает вопрос - а нахуя всё же, если без них работает лучше?

Ответы: >>502914

sage 24 Июн, 13:11 #426 #502914

>>502907
Дело не в том, как хорошо это работает, а в том, как потом такую систему расширять и дорабатывать. Если архитектура прозрачна для чтения — любая макака поймет что твой код делает. Если ты на с++ все хуячишь в си-стайле, то тут уже попахивает чем-то нездоровым.

Ответы: >>502920

24 Июн, 13:21 #427 #502920

>>502914
Да с ахритектурой вроде всё нормально и понятно, расширяли и дорабатывали не раз уже. Для себя же пишем, нам проблемы с говнокодом не нужны.
Я просто никогда не понимал этой блядской практики делать переменную закрытой и писать отдельные функции для того, чтобы писать и читать в неё. Компиляторы цпп не предполагают обычно, что программист идиот, и честно ставят лишние JMP. А если у тебя пара миллионов обращений к такой переменной за цикл? Алсо оптимизация работы с завуалированными таким образом даннми идёт по пизде обычно.

Ответы: >>502924, >>502925

24 Июн, 13:27 #428 #502924

>>502920
>Компиляторы цпп не предполагают обычно, что программист идиот
Функция вроде геттера будет 100% заинлайнена, с точки производительности разница небольшая.

Ответы: >>502962

sage 24 Июн, 13:27 #429 #502925

>>502920
Ну вообще говоря использовать геттеры и сеттеры чисто для изменения одной переменной это долбоебизм. Есть класс, в нем есть методы, которые изменяют его внутреннее состояние. Если программист работает с классом как со структурой, но через геттеры-сеттеры, то смело можно сказать что его архитектура говно.

Ответы: >>502932

24 Июн, 13:37 #430 #502932

>>502925
Я вообще смысл геттеров-сеттеров не понимаю, если честно. Это же лишние сущности в любом раскладе.

Ответы: >>502937, >>502957

24 Июн, 13:41 #431 #502937

>>502932
Школьник никогда не видел геттеров/сеттеров с логикой?

Ответы: >>502947

24 Июн, 13:48 #432 #502947

>>502937
А дебил не понимает, что я говорю про вариант без логики?

24 Июн, 14:01 #433 #502957

>>502932
>Это же лишние сущности в любом раскладе
Как ты сделаешь поле доступным только для чтения, например?

Ответы: >>502962

24 Июн, 14:08 #434 #502962

>>502924
Кстати нихуя. Для интереса решил проверить, накатал простенький пример, включил оптимизацию в дебажном билде, и на выходе получил:

\t\t\tTestDurr.setHurr(123);
007191BB push 7Bh
007191BD lea ecx,[ebp-350h]
007191C3 call durr::setHurr (5700B0h)

>>502957
>Как ты сделаешь поле доступным только для чтения, например?
А зачем мне его делать доступным только для чтения, например?

Ответы: >>502967, >>503006

24 Июн, 14:11 #435 #502967

>>502962
>А зачем мне его делать доступным только для чтения
Потому что так диктует логика программы

Ответы: >>502984

24 Июн, 14:33 #436 #502984

>>502967
Ни разу не сталкивался с такой логикой.
Можно реальный пример из жизни? Я не с целью поставить под сомнение или потроллить, мне просто интересна ситуация, в которой может понадобиться применение private и protected. В моей практике таких ситуаций не возникало ни разу.

Ответы: >>502994, >>503005

24 Июн, 14:43 #437 #502994

>>502984
http://doc.qt.io/qt-4.8/qobject.html

sage 24 Июн, 14:55 #438 #503005

>>502984
Ну вот например есть у тебя коллекция, вроде std::map. У нее есть поле size, которое содержит количество элементов. Поле меняется только за счет удаления и добавления элементов и пользователю нельзя давать возможность изменять его напрямую, поэтому оно приватное и для него есть только геттер. Это поле содержит состояние объекта класса, но не должно быть доступно для прямого изменения.

Ответы: >>503018

24 Июн, 14:56 #439 #503006

>>502962
Специально проверил, у меня все инлайнит в релизе. Более того, он у меня еще и конструктор std::string заинлайнил. Советую сменить компилятор, все-таки 2015 на дворе.

>>502962
>А зачем мне его делать доступным только для чтения, например?
Ну если у тебя вся программа из структур с публичными полями, то действительно смысла нет. Пример где это оправдано - это например vector::size. Переменная которая хратит количество элементов вектора недоступна на чтение из клиентского кода.

>public variables = bad programming practice
Половина из них даже сформулировать внятно не может чем именно плохо: "Господин сказал что нельзя, значит нельзя. Но если сделать к ним доступ через геттеры/сеттеры то это отгонит злых духов". Глупые мартышки, что с них взять.

Ответы: >>503018, >>503068

24 Июн, 15:13 #440 #503018

>>503005
>std::map
Дальше не читал. Не пользуюсь этим говном, и вам не советую.
>>503006
>vector
аналогично
>Советую сменить компилятор, все-таки 2015 на дворе.
Я бы с удовольствием, если честно, но мы вынуждены поддерживать обратную совместимость с WinXP, что ограничивает выбор компиляторов и версии используемых библиотек.

Ответы: >>503020, >>503044

sage 24 Июн, 15:15 #441 #503020

>>503018
>Не пользуюсь этим говном
Никто тебя и не заставляет. Ты просил примеры, тебе пояснили. Если захочешь еще раз поспорить о вкусах — можешь лучше сразу пойти нахуй.

Ответы: >>503026

24 Июн, 15:25 #442 #503026

>>503020
Мне ничего не пояснили. Я спросил про практическое применение, мне ответили "ну, типа, в говнобиблиотеках нельзя так делать, потому что нельзя". Это ответ, по-вашему?

Ответы: >>503031, >>503044

sage 24 Июн, 15:34 #443 #503031

>>503026
Блять, я тебе руским по твоей цветовой схеме написал
>поле содержит состояние объекта класса, но не должно быть доступно для прямого изменения.
Если у тебя другие подходы к программированию, то нехуй тут флейм разводить и высказывать свои никому не интересные мнения по поводу качества библиотек.

24 Июн, 15:36 #444 #503033

>ну, типа, в говнобиблиотеках нельзя так делать, потому что нельзя
Тебе все конструктивно пояснили, а ты продолжаешь переписку в стиле
>кококо я вас не понял

Ответы: >>503106

24 Июн, 16:01 #445 #503044

>>503018
>Не пользуюсь этим говном, и вам не советую.
Хотелось бы услышать почему.

>>503026
>Мне ничего не пояснили.
Просто ты тупой чтобы понять.

Ответы: >>503068

24 Июн, 17:17 #446 #503068

>>503006
>public variables = bad programming practice
Половина из них даже сформулировать внятно не может чем именно плохо: "Господин сказал что нельзя, значит нельзя. Но если сделать к ним доступ через геттеры/сеттеры то это отгонит злых духов". Глупые мартышки, что с них взять.
Вообщем ты прав. Все эти паблики, протектеды и пр. типо защита от тупых кодеров, которые получают готовый класс, но не знают как им пользоваться. Правда это нихуя не работает, но полоумные ООП-шники все равно придумавают правила по которым надо расставлять приваты или проектеды, формулируют ебанутые бэд практики прочую хуйню.
>Так так, шо тут у нас, мне надо поменять координаты вот этого объекта... Такс паблик метод SetCoordinates - нет, это хуйня какая-то... Вот есть же свойства int x, int y! Бинго! Чего, компилятор ругается что они протектед. Щас пабликом их сделаю, быдлокодер тут до меня сидел какой-то, не разбирается нихуя. Воо! Ништяк компильнулось теперь, ну все на продуктвив.

>Ну если у тебя вся программа из структур с публичными полями
Ну сделаю я поля защищенными. И что? Алгоритм станет работать так как нужно? Исчезнет утечка памяти? Производительность вырастет?
>>503044
>Не пользуюсь этим говном, и вам не советую.
>Хотелось бы услышать почему.
Чего непонятного?
>std:: = bad programming practice
Я конструктивно объяснил?

Ответы: >>503074, >>503100, >>503102, >>503104, >>503105

24 Июн, 17:21 #447 #503074

>>503068
>>Ну если у тебя вся программа из структур с публичными полями
>Ну сделаю я поля защищенными. И что? Алгоритм станет работать так как нужно? Исчезнет утечка памяти? Производительность вырастет?
Если убрать «protected», т.е. видимые дочерним классам, то уменьшиться время на внесение изменений в основной класс из-за кошмара зависимостей в дочерних классах. Курсив загугли и вообще дальше сама.

Ответы: >>503082

24 Июн, 17:30 #448 #503082

>>503074
>видимые дочерним классам
Про френдов забыл?
>то уменьшиться время на внесение изменений
Главное почаще повторять эту мантру
>из-за кошмара зависимостей
Сами придумаем себе проблемы и сами же будем героически их превознемогать. Зато ООП, епта.

sage 24 Июн, 17:57 #449 #503100

>>503068
>Я конструктивно объяснил?
Ясно все с тобой, хейтерок. Иди зелени в другое место. Не кормите его больше.

Ответы: >>503106

24 Июн, 18:01 #450 #503102

>>503068

> Ну сделаю я поля защищенными. И что? Алгоритм станет работать так как нужно
Только на дваче: дети не знающие ООП и наверняка не учившиеся ни разу в жизни на CS обсуждают ООП.

Поля надо делать защищенными по одной простой причине. Потому что в этом случае доступ к ним контролирует сам объект. Чтобы разобраться кто туда записал не то значение (или поставить проверку, или что-то сделать с этим значением или что-то сделать при его изменении), тебе достаточно поставить проверку в одном-двух местах в классе. А с публичным свойством обращаться к нему может любая из ста тысяч строк в твоем приложении и тебе надо обходить их все и проверять. Это называется инкапсуляция и она нужна для уменьшения сложности огромного по объекму кода, а любое современное приложение огромное по объему.

То есть тут суровые прагматичные причины, желание сэкономить время на разбор/модификацию кода, снизить вероятность ошибок и как итог экономить деньги на разработку.

Условно говоря приватное поле это как подъезд с охраной и пропусками, а публичное это открытый всем желающим.

> Исчезнет утечка памяти? Производительность вырастет?
Будет меньше багов и потраченного времени, проще поддерживать код.

> если у тебя вся программа из структур с публичными полями
то с большой вероятностью это кусок быдлокода так как ООП удобнее и мощнее.

Алсо сишник который не использует std по моему просто дебил который его не может осилить и изобретает свои велосипеды.

Ответы: >>503118

24 Июн, 18:02 #451 #503104

>>503068
[code lang="cpp"]
//x = abse^(iarg)
struct Complex
{
\tdouble abs;
\tdouble arg;
\t
\t//...
};

//Везде в коде, где ты хочешь использовать модуль числа, пишешь в духе:
tvoya_mamka.useAbs (number.abs);

//ВНЕЗАПНО за час до дедлайна оказывается, что большие по модулю числа
//не влезают в твою структуру, и все крашится. Ты вынужден изменить реализацию
//на, например, такую:

//x = real + iimaginary;
struct Complex
{
\tdouble real;
\tdouble imaginary;
\t
\tdouble getAbs ()
\t{
\t\treturn sqrt (real real + imaginary * imaginary);
\t}
};

//Теперь ты по всему коду (а у тебя его миллион строк, не забываем) хуяришь
//замены number.abs на number.getAbs (). Если буквосочетание abs используется
//не только в этой структуре, то тебя ждут увлекательнейшие часы ручного отбора
//нужных мест для замены или написание/поиск хитрожопого скрипта для этого,
//ну ты понел. Дедлайн сорван, господин недоволен глупым рабом, который не любит
//аксессоры. А с их использованием все бы вылилось в изменение одной строчки
//и перекомпиляцию одного исходника:

class Complex
{
\tdouble abs;
\tdouble arg;
\t
public:
\t
\tdouble getAbs ()
\t{
\t\treturn abs;
\t}
};

//"Нужно сразу продумывать архитектуру правильно!" - раздался истошный крик со стороны
//загона для джуниоров. Но тимлид не обратил на эти крики никакого внимания. Ньюфаг
//не человек, и сегодня ему предстоит очень трудная ночь. На протяжение всего проекта
//каждая ночь последнего дня спринта будет у него трудной, и через полгода его интеллект
//будет разработан настолько, что без труда сможет вместить 23 паттерна проектирования.
[/code]

Ответы: >>503151

24 Июн, 18:02 #452 #503105

>>503068

> защита от тупых кодеров,
То есть понятный самодокументируемый код для тупых кодеров, а умники предпочитают разбираться в лапше из структур и гдобальных функций?

Ответы: >>503151

24 Июн, 18:04 #453 #503106

>>503100
Я иронизировал, относительно вот этого поста
>>503033
>Тебе все конструктивно пояснили,
Но тебе чуство иронии видимо не знакомно, все всерьез воспринимаешь.
Что не отменят того факта, что С++ - всего лишь неудачная ООП надстройка над божественным pure C.

Ответы: >>503112, >>503134

sage 24 Июн, 18:05 #454 #503112

>>503106
>над божественным pure C
Еще один фанатик, не понимающий что под разные задачи нужны разные инструменты. Иди уже создай pure C тред и сиди там один сколько влезет. Нет, надо сюда приходить и заниматься проповедями "неверным"

Ответы: >>503125

24 Июн, 18:12 #455 #503118

>>503102
>Поля надо делать защищенными
Спасибо кэп, но зачем ты мне это все объясняешь? Да еще буквально цитатами с вики.
>для уменьшения сложности
Придумаем себе сложности и будем героически их превознемогать.
>экономить деньги на разработку.
Нанимая высококвалифицированных гуру-ООП, которые потребуют хорошую зарпалтку? Отличный план.
>Будет меньше багов и потраченного времени, проще поддерживать код.
Опять мантры.
>Алсо сишник который
Алсо %langname% который не использует %libname% по моему просто дебил который его не может осилить и изобретает свои велосипеды.

Ответы: >>503122, >>503124

24 Июн, 18:15 #456 #503122

>>503118
Я очень надеюсь, что ты пишешь что-то околокриптографическое. Использование собственных велосипедов там петушками потом очень облегчает работу мне.
мимохакор

Ответы: >>503151

24 Июн, 18:17 #457 #503124

>>503118

>>для уменьшения сложности
> Придумаем себе сложности
Ну иди объясни заказчику что ему нужно не полноценное приложение для управления отношениями с клиентами, а консольная программа вычисления чисел Фибоначчи на Го и что он зря придумывает себе сложности.

> Нанимая высококвалифицированных гуру-ООП, которые потребуют хорошую зарпалтку?
Которые в отличие от сишника способны реализовать систему, которая принест прибыль которой с лихвой хватит на оплату труда специалистов.

Ответы: >>503135, >>503136

24 Июн, 18:18 #458 #503125

>>503112
>Еще один фанатик, не понимающий что под разные задачи нужны разные инструменты.
Это ты ООП-шникам объясняй, которые в абослютно любой задаче пытаются нагородить классы.

24 Июн, 18:24 #459 #503134

>>503106
>С++ - всего лишь неудачная ООП надстройка над божественным pure C.
Прохладно, если из С++ выкинуть ООП, он все равно чистому С на клык даст
Потому что шаблоны, RAII

Ответы: >>503138, >>503139, >>503153

24 Июн, 18:25 #460 #503135

>>503124
Ну на самом деле истина где-то посередине. Не всегда проект является стартапом из молодых-шутливых сениоров. Нанимать в рамках большой корпорации только толковых - экономически невыгодно, обычно их ставят только на критичные участки и как начальников над группками дешевых макак. Долбоебы вроде вопрошающего напишут говно, но от интерфейса, например, большего и не требуется. Старший разработчик ебет их за совсем вопиющие косяки и ставит жесткие рамки, а платить много нужно ему одному, а не всей группе. Другое дело, что макаки - единственные, кто проигрывает от такого расклада, скучно же, и без перспектив и денег. Так что, по идее этот кукаретик должен наоборот искать способ развиваться, а не защищать манямирок, лол.

Ответы: >>503149

24 Июн, 18:26 #461 #503136

>>503124
>Ну иди объясни заказчику
Регулярно общаюсь, и с IT, и с Бизнесом, с Техблоком. Им глубоко похуй.
>способны реализовать систему, которая принест прибыль
Опять мантры
Вообще, я не против ООП и в частности С++. С++ отлично решает ограниченный круг задач, это бесспорно. Но это далеко не панацея. И основые проблемы С++ от того, что его используют для решения задач, для которых он не предназначен.

Ответы: >>503142

24 Июн, 18:27 #462 #503138

>>503134
>потому что шаблоны, исключения, лямбды, stl...
Пофиксил тебя.

Ответы: >>503149

24 Июн, 18:28 #463 #503139

>>503134
>шаблоны
Ок, согласен
>RAII
Нахуй.

Ответы: >>503144

24 Июн, 18:31 #464 #503142

>>503136
>иди объясни заказчику что ему нужно не полноценное приложение для управления отношениями с клиентами, а консольная программа вычисления чисел Фибоначчи
>Им глубоко похуй

Здравствуйте, я представитель Otkat Software inc. Мы крайне заинтересованы видеть вас своим сотрудником.

Ответы: >>503156

24 Июн, 18:34 #465 #503144

>>503139
Отказываешься от RAII => отказываешься от исключений практически во всех случаях. Enjoy your
[code lang="cpp"]
switch (makeAction ())
{
case ERROR1: processError1 (); break;
//...
}
[/code]

24 Июн, 18:37 #466 #503149

>>503135
>искать способ развиваться, а не защищать манямирок, лол.
Мне уже давно все равно какой язык\парадигму использовать. Подбираю под конкретную задачу. Поэтому могу позволить себе сравнение. Ну да, возможно с некоторым субъектевизмом, каюсь, грешен. Не обижайтесь, норм язык, просто не стоит его оголтело использовать.
>>503138
>исключения
Ок.
>лямбды, stl
Сахар и либы. Дело вкуса.

494 Кб, 500x204

24 Июн, 18:39 #467 #503151

Посоны, ну очевидная зелень же. Этот хуесос ответы по существу >>503104 >>503105 >>503122, где ему поясняют, игнорирует, а про мантры кукарекает что-то с постоянством этой самой мантры.

Ответы: >>503160

24 Июн, 18:40 #468 #503153

>>503134
C++ без ООП называется Clay и он дает на клык не только С, но и С++. Жалко, проект умер.

Ответы: >>503154

24 Июн, 18:41 #469 #503154

>>503153
>проект умер
Это единственный показатель качества языка в итоге, лол.

Ответы: >>503165

24 Июн, 18:42 #470 #503156

>>503142
Ну извини, не так выразился. Им похуй на ООП-пробелмы вендора. Главное чтобы функционал работал как нужно.

Ответы: >>503159

24 Июн, 18:45 #471 #503159

>>503156
Это так. Но не выгоднее ли соблюдать небольшое количество правил, чтобы сделать разработку быстрее и проще в разы? Получить те же деньги, затратив меньше усилий.

24 Июн, 18:45 #472 #503160

>>503151
Отвечу чуть попозжей, если тебе это так критично. Там рефакторинг, использование либ, и самодокументироаный код. Конечно С++ все эти проблемы\задачи решает, ага.

24 Июн, 18:53 #473 #503165

>>503154
С чего вдруг? У него довольно хуевая лицензия, например, это причина поважнее. А так автор запилил его для себя и пользуется им. А С++ без очень больших бабок не переплюнешь.

24 Июн, 19:20 #474 #503182

А может в шапке будет ссылка на годный учебник?

Ответы: >>503185

24 Июн, 19:22 #475 #503185

>>503182
Я создам следующий тхреад, там все будет.

Ответы: >>503186, >>503188

24 Июн, 19:23 #476 #503186

>>503185
лимит 500?

Ответы: >>503221

24 Июн, 19:24 #477 #503188

>>503185
А вообще есть ли учебники по С++ или только по С?

Ответы: >>503195

24 Июн, 19:29 #478 #503195

>>503188
http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list

Чего нет - так это годных курсов.

Ответы: >>503209

24 Июн, 19:44 #479 #503209

>>503195
Жалко, что я не могу в английский

Ответы: >>503212

24 Июн, 19:48 #480 #503212

>>503209
На %X% есть время, а на английский якобы нет. Соу типикал.

Ответы: >>503217

24 Июн, 19:49 #481 #503213

Я тот еблан с парсером SWF.
Наткнулся я тут на гитхабопомойке на мёртвенький аналогичный проект и кое-что меня там заинтересовало - https://github.com/djcsdy/swfmill
А именно: https://github.com/djcsdy/swfmill/blob/master/src/SWFTag.h и его родитель https://github.com/djcsdy/swfmill/blob/master/src/SWFIdItem.h
В базовом классе (Tag) для всех остальных тегов есть статичная ф-я get(...), которая читает айдишник тега из буфера и дёргает другую статичную ф-ю из родителя-фабрики(?).
В итоге, как я понял, её использование сводится к чему-то подобному:
[CODE]
#include "Tag.h"

Reader r = new Reader(buff, buff_s);
Tag t = Tag::get(r);
[/CODE]
Получается дёрнув одну статичную ф-ю родительского класса мы на выходе получим соответсвующего айдишнику потомка. Без всяких отдельных созданий фабрик. Верно?
Но ведь в фабрику надо как-то этих самых потомков с присущими им айдишниками загрузить... И я нихуя не понимаю как это делается...

Ответы: >>503234

24 Июн, 19:50 #482 #503217

>>503212
Он мне не даётся.

Ответы: >>503219

24 Июн, 19:50 #483 #503219

>>503217
А ты ему пробовал отдаться?

Ответы: >>503223

24 Июн, 19:51 #484 #503221

>>503186
Да.

24 Июн, 19:52 #485 #503223

>>503219
Пробовал, он меня отверг.

Ответы: >>503225

24 Июн, 19:54 #486 #503225

>>503223
Ничего, в макдаке тоже должен кто-то работать.

Ответы: >>503227

24 Июн, 19:55 #487 #503227

>>503225
Мне даются точные науки)

Ответы: >>503229

24 Июн, 19:56 #488 #503229

>>503227
Хороший кассир получится.

Ответы: >>503233

24 Июн, 20:02 #489 #503233

>>503229
Хех, и тут ты такой рассказываешь про способ выучить отдаться английскому языку. Ну или учебник на русском подкинешь. Пожалуйста.

Ответы: >>503252

24 Июн, 20:02 #490 #503234

>>503213
Почитал тут про статичные переменные в классах, которой и является массив у фабрики, и кажется понял.
Получается использование выглядит как-то так?
[CODE]
#include "Tag.h"
#include "Tag1.h"
#include "Tag2.h"
#include "Tag3.h"
#include "Tag4.h"

Tag::Registry[0] = Tag1;
Tag::Registry[1] = Tag2;
Tag::Registry[2] = Tag3;
Tag::Registry[3] = Tag4;

Reader r = new Reader(buff, buff_s);
Tag t = Tag::get(r);
[/CODE]

Ответы: >>503257

24 Июн, 20:30 #491 #503252

>>503233
Запишись на годные платные курсы в своем городе. Обязательно туда, где есть носители языка, потому что если ты ноль вообще, то тебе нужна база для самостоятельного развития. Рано или поздно научишься с гемором, но таки читать и понимать текстовую информацию. Обмазываешься чем угодно, ставишь приложения мобильные, читаешь западные интернеты вместо двощей. Курсера оче заебись заходит с субтитрами - понимаешь 50% слов и заодно слышишь их. Ну и локаль системы, все игры и софт - на английский. Через пару-тройку курсов читать и переводить в голове субтитры станет сложнее, чем интерпретировать подсознательно на слух. Потом и понимание текста подтянется. Через пару лет сможешь читать и даже писать доки на пусть и кривом, но английском. Пруфаю переводом, как я с имеющейся базы в виде адски трудного чтения текста за пару лет выучил английский:

Take a paid course in your city. Choose one with a native speakers. You need a foundation for your self-education. Someday you'll became to understand a text information. Then do anything to help your develop your language knowledge - install English learning apps, read the Reddit instead of the Dvosch. Coursera is very good due to subtitles presence - even if you'll understand a half of the words, you'll get a listening comprehension. Change all your software locales to English. Several courses later, you'll begin to understand speaking without subtitles, but reading skills will also gain. Couple of years later you'll be able to understand and speak English.

Ответы: >>503261, >>503360

24 Июн, 20:32 #492 #503257

>>503234
Обычно такое делается на препроцессоре.

24 Июн, 20:35 #493 #503258

>Someday you'll became to understand a text information.
Нде. Чувак, ты бы не позорился.

Ответы: >>503267

24 Июн, 20:36 #494 #503261

>>503252
Спасибо за совет. Но есть ещё вопрос, для изучения специализированных текстов, например по математике и физике, как лучше подойти? И может поискать иностранных студентов в ВУЗе, в котором учусь? Они же по идее подойдут для общения?

Ответы: >>503265, >>503266, >>503270, >>503278

24 Июн, 20:38 #495 #503265

>>503261
Да просто читай их и все. Это самое простое, язык там простой и с кучей слов как в русском . Для грамматики только мёрфи прорешать.

24 Июн, 20:38 #496 #503266

>>503261
> Но есть ещё вопрос, для изучения специализированных текстов, например по математике и физике, как лучше подойти?
Кроме как читать эти самые тексты и искать переводы слов неизвестных, я не знаю.
Ну и ещё можно их в какую-нибудь зубрилку типа анки (рекомендую) забить.

24 Июн, 20:38 #497 #503267

>>503258
Не вижу позора - ошибки есть, естественно, как и у начинающих программистов есть ошибки в коде. Главное, что я понимаю на слух речь и свободно читаю книги, плюс периодически вычитываю и правлю свои собственные доки и комментарии в исходниках, а также свободно разговариваю с англоязычными коллегами.

Ответы: >>503368

24 Июн, 20:39 #498 #503270

>>503261
Спасибо за совет. Но есть еще вопрос, для изучения специализированных способов ебли, например, анала и орала, как лучше подойти? И может поискать студентов-тянок в ВУЗе, в котором учусь? Они же по идее подойдут для траха?

Ответы: >>503275, >>503276

24 Июн, 20:41 #499 #503275

Вот и подошли к БАМП лимиту. Создавай новый тред >>503270

24 Июн, 20:41 #500 #503276

>>503270
Вот это точно ненужно. Секс сильно отвлекает от учёбы.

24 Июн, 20:42 #501 #503277

https://2ch.hk/pr/res/503274.html
https://2ch.hk/pr/res/503274.html
https://2ch.hk/pr/res/503274.html

24 Июн, 20:42 #502 #503278

>>503261
>для изучения специализированных текстов, например по математике и физике, как лучше подойти
Они даже легче понимаются, если термины знакомые.

24 Июн, 22:29 #503 #503360

>>503252
Тебе тоже необходимо на курсы английского. Для начинающих. Даже гугл транслейт лучше переведет.

Ответы: >>503368

24 Июн, 22:36 #504 #503368

>>503360
>>503267

25 Июн, 15:24 #505 #503622

>>497149
хочу.
в чем прикол?)

308 Кб, 1366x768

25 Июн, 23:14 #506 #504034

Программач, есть один код, который должен переводить число из постфиксной формы в инфиксную. Но он почему-то не выдаёт ответ. Или я не пойму, что я делаю не так. Компилирую в Dev C++, компилируется, но, что бы я не вводил, не работает ничего. Что я делаю не так?

#include <list>
#include <string>
#include <iostream>

using namespace std;
int main() {
list< string > stack;
string str;
while (cin >> str) {
if (str == "+" || str == "-" || str == "" || str == "/" ) {
string b = stack.back(); stack.pop_back();
string a = stack.back(); stack.pop_back();
stack.push_back( string("(") + a + str + b + ")");
} else {
stack.push_back( str );
}
}

cout << stack.rbegin();
return 0;
}

Тред утонул или удален.
Это копия, сохраненная 17 июля 2015 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion