@ProCxx

Страница 670 из 2477
Alexander
15.03.2017
22:40:54
А я тут все еще туплю со статик линковкой питона ._.
прикольно, что кто-то с моего универа здесь есть.

Маришка
15.03.2017
22:41:09
Ага, еще и с первого курса хд

Google
Alexander
15.03.2017
22:41:16
отлично
Мне же надо забрать мою книгу ?

отлично
Ты же видел, да? )))https://twitter.com/stdcppru/status/841297025396273155

Приезжаем все в Москву бафаться от книжки с автографом Страуструпа)

Ned Ogl
16.03.2017
05:07:33
Ну, еще 26 человек и очередной юбилей...

Дед Пегас
16.03.2017
05:19:49
Хотя бы двоих

Evgeniy
16.03.2017
06:01:40
Хотя бы двоих
Ты как будто не программист(

Настоящий программист если получает ответ 1000, округляет до 1024

Grigor
16.03.2017
06:11:10
Настоящий программист если получает ответ 1000, округляет до 1024
но как алкоголику приятно праздновать дважды

Дед Пегас
16.03.2017
06:21:19
Настоящий программист если получает ответ 1000, округляет до 1024
Ага, а железоделы не программисты, видимо)

Grigor
16.03.2017
06:24:40
Дед Пегас
16.03.2017
06:28:53
У них же обычно честно все
Да, не кибибайты, а килобайты.

Grigor
16.03.2017
06:29:02
ну вот и я о том же)

Google
Дед Пегас
16.03.2017
08:31:02
https://github.com/ericniebler/range-v3/releases/tag/0.2.0

Kathu
16.03.2017
08:33:04
Сорри. Ну, можете выпилить. Или оставить, если оно релевантно. Вроде группа по С++, у меня С++ :)
о, бро, ты крут, я как раз твой курс на Pluralsight смотрю по паттернам)

Vyacheslav
16.03.2017
09:36:00
Здравствуйте! Кто может подсказать, как инициализировать (открыть файл) ifstream в конструкторе классе, чтобы в методах можно было пользоваться этим открытым файлом. Я так понимаю, файл закрывается при выходе из блока (в данном случае конструктора).. Другими словами, как сделать, чтобы файл не закрывался при выходе из конструктора

Aleksei
16.03.2017
09:38:13
сделй его членом класса

Vyacheslav
16.03.2017
09:42:12
я сделал class Reader { public: Reader(const string &fn) : filename(fn) { ifstream infile(filename); if (! infile.is_open()) throw runtime_error("can't open input file \"" + filename + "\""); } mymethod {} private: ifstream infile; };

Tema
16.03.2017
09:42:41
а почему ненадо?
потому что тебе приходится кидать эксепшоны

а это гейство

тут тебе не джава

Tema
16.03.2017
09:43:28
сделай отдельный метод "initFileConnection"

Aleksei
16.03.2017
09:43:48
И зачем второй раз в конструкторе объявляешь?

Tema
16.03.2017
09:43:52
он будет делать m_infile. open(filename)

m_infile перенеси внутырь класса

Vyacheslav
16.03.2017
09:47:27
И зачем второй раз в конструкторе объявляешь?
спасибо! написал infile.open(filename) в конструкторе, все заработало но вообще да, согласен, что кидать эксепшены из конструктора не ок

Tema
16.03.2017
09:49:19
но вообще кидать в сипипи эксепшоны это зашквар , я щитаю

Google
Tema
16.03.2017
09:49:45
просто в конструкторах ненадо делать опасный код

делай их в init

babysitter
16.03.2017
10:40:26
Tema
16.03.2017
10:42:59
кто сказал, где написано
я те сказал, ясно?

правда я новичок ещё

babysitter
16.03.2017
10:43:44
я те сказал, ясно?
а, ну тогда вопросов нет

zk
16.03.2017
10:47:34
понял, спасибо
не слушай дебилов, лучше спроси у них почему они считают что исключения зло вообще и\или в конструторах. Зачем создавать объект, на половину инициализированный. Зачем нам метод initFileConnection, когда есть конструктор. Гради Буч считает что здесь имеет место быть племенная мифология

Aleksei
16.03.2017
10:47:50
кто сказал, где написано
https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#Rf-noexcept Note Destructors, swap functions, move operations, and default constructors should never throw. Только про дефолтные сказано

Tema
16.03.2017
10:48:57
тока потом тот кто будет юзать втой код прокленёт тебя

за такой кал

babysitter
16.03.2017
10:49:15
я это знаю, практика совершенно нормальная. init нужен если у вас в проекте принципиально нельзя юзать исключения. https://isocpp.org/wiki/faq/exceptions#ctors-can-throw

Tema
16.03.2017
10:51:33
Джун?
ну не

Дед Пегас
16.03.2017
10:51:34
А когда конструктор будет возвращать expected?

Google
Vyacheslav
16.03.2017
10:52:01
Вообще да, глянул на стековерфлоу, там говорят, что норм использовать эксепшены в конструкторах

Tema
16.03.2017
10:52:06
Vyacheslav
16.03.2017
10:52:07
http://stackoverflow.com/questions/810839/throwing-exceptions-from-constructors

Admin
ERROR: S client not available

Vitaly
16.03.2017
10:52:25
ну не
Судя по твоим высказыванием здесь, да.

Дед Пегас
16.03.2017
10:52:28
а он будет таоке возвращать?
Нет, он только this же возвращает.

ЕМНИП.

Лень лезть в стандарт(

Tema
16.03.2017
10:52:43
Vyacheslav
16.03.2017
10:55:04
Вообще логично - если в класс/конструктор передаем имя файла на открытие, а он не открылся - выходим с эксепшеном

zk
16.03.2017
10:55:31
Кеп

babysitter
16.03.2017
10:57:03
А когда конструктор будет возвращать expected?
я не понял, это о чем речь вообще?

Aleksei
16.03.2017
10:57:25
Проблема с эксепшенами в том, что если в конструкторе была выделена память или заняты какие-то другие ресурсы, то надо перед выбросом все это почистить не забыть, т.к. деструктор вызван не будет

Anatoly
16.03.2017
10:58:58
Просто убиваешь процесс и ОС все сделает за тебя. Норм! ?

Aleksei
16.03.2017
11:00:19
Ага, круто когда программа крашится, если не смогла файл открыть :) Даже не сказав ничего

Anatoly
16.03.2017
11:01:35
Лучше кернел паник сразу
это если ты модуль ядра пишешь, вариант! ?

babysitter
16.03.2017
11:01:35
Проблема с эксепшенами в том, что если в конструкторе была выделена память или заняты какие-то другие ресурсы, то надо перед выбросом все это почистить не забыть, т.к. деструктор вызван не будет
ну деструкторы для полей вызовутся же. то есть если у тебя там что-то грязное типа владеющего raw поинтера, то да. придется перехватить исключения из этого списка инициализации, подчистить и передать исключение выше.

Anatoly
16.03.2017
11:02:11
нет эксепшенов, нет проблем.

Google
Aldar
16.03.2017
11:03:40
нет эксепшенов, нет проблем.
нет кода - нет проблем

Aleksei
16.03.2017
11:06:37
@snelius30 поднимай табличку :sarcasm: выше, а то не видно

Denis
16.03.2017
11:08:14
Товарищи, можно ли сделать так, чтобы по Ctrl+C кидалось исключение? Пробовал поставить свой обработчик на SIGINT и кидать из него, но это работает через раз, и вообще в интернете пишут, что так делать не надо.

Anatoly
16.03.2017
11:09:50
это тебе надо перехватывать ^c в терминале

Denis
16.03.2017
11:10:11
И как это сделать?

Anatoly
16.03.2017
11:10:12
@snelius30 поднимай табличку :sarcasm: выше, а то не видно
А я вообще-то серьёзно, try/catch придумали враги народа

ох, не просто это

ну почему именно ctrl-c ? может договоримся на скажем alt-v ?

babysitter
16.03.2017
11:13:16
ну почему именно ctrl-c ? может договоримся на скажем alt-v ?
прекращай. вместо ответа на вопрос торгуешься, не аргументируешь позицию. нечего сказать - не говори.

Vyacheslav
16.03.2017
11:14:16
http://stackoverflow.com/questions/1641182/how-can-i-catch-a-ctrl-c-event-c

Denis
16.03.2017
11:14:21
У меня есть что-то вроде шелла: я набираю команды, он что-то считает и выдает результат. Иногда вычисление может быть долгим. Хотелось бы, чтобы по ctrl+c оно прерывалось, и шелл просил следующую команду, как в питоне.

Square
16.03.2017
11:14:36
Denis
16.03.2017
11:14:50
http://stackoverflow.com/questions/1641182/how-can-i-catch-a-ctrl-c-event-c
exit(1) не подходит, к сожалению

babysitter
16.03.2017
11:15:29
тут нужно костылить через long jump

Страница 670 из 2477