[Ответить в тред] Ответить в тред



[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 598 | 25 | 130
Назад Вниз Каталог Обновить

C++ #50 юбилейный Аноним 10/04/17 Пнд 13:05:07  970816  
1964273bd7fd247[...].png (75Кб, 400x400)
fadd8770c34d219[...].jpg (63Кб, 446x606)
Вместо шапки - https://github.com/sosachbot/cppthreadhat/wiki
Ответы на все вопросы - http://en.cppreference.com/w/ http://www.cplusplus.com/reference/

Прошлый - https://2ch.hk/pr/res/961839.html

Теги: кресты, cpp
Аноним 10/04/17 Пнд 13:53:13  970841
Лул до сих пор мою шапку юзают
Пора бы туда ситхов запилить
Аноним 10/04/17 Пнд 14:16:31  970859
cpp.jpeg (172Кб, 1631x2207)
Подписался.
Аноним 10/04/17 Пнд 16:40:55  970952
Как вернуть массив символов из функции без использования указателей и контейнеров? Например: char array[100] = function();
Аноним 10/04/17 Пнд 16:49:41  970959
>>970952
std::array<char, 100>
Аноним 10/04/17 Пнд 17:21:17  970974
>>970952
auto func() {char arr[100]; return arr;}
Компилировать с -std=c++14
Аноним 10/04/17 Пнд 17:54:16  970989
>>970974
Все равно возвращает адрес локальной переменной.
"warning: address of local variable 'array' returned" "incompatible types in assignment of 'char*' to 'char[2]"
Аноним 10/04/17 Пнд 18:08:25  970997
>>970952
Никак, функция возвращает скалярное значение либо ничего. Она тебе должна 100 символов пихнуть в стек? Наркоман.
Аноним 10/04/17 Пнд 18:10:40  970998
>>970997
Каждому лектору - в жопу по вектору.
Аноним 10/04/17 Пнд 18:20:47  971008
>>970816 (OP)
Куда делся ОП-стихописец?
Аноним 10/04/17 Пнд 18:26:29  971017
>>970952
neekaque
Аноним 10/04/17 Пнд 18:28:18  971019
>>970952
Кек
char (&GetArr())[100]
{
static char arr[100] = "Use std::array";
return arr;
}
void main()
{
char (&arr)[100] = GetArr(); // or auto& arr = GetArr();
}
Аноним 10/04/17 Пнд 18:30:16  971021
>>970952
char f(size_t n) {
string s=.......

return s[n];
}

int main() {
int N=...
string res;
for(auto i=0; i<N; i++) {
res += f(i);
}
return 0;
}
Аноним 10/04/17 Пнд 18:30:31  971022
>>971019
А там точно не надо && или &&& может быть?
Аноним 10/04/17 Пнд 18:31:08  971023
>>971019
Да, также забыл упомянуть, что не хочется использовать static и const хуету в функциях. Поэтому просто решил в качестве аргумента функции передавать массив, куда будет записана строка.
Аноним 10/04/17 Пнд 18:34:00  971028
>>970974
массив упрощается до указателя, и ты возвращаешь указатель на удаленную область. U N D E F I N E D B E H A V I O R
Аноним 10/04/17 Пнд 19:46:01  971103
>>970952
Возвращай char[900001] и используй только столько, склько нужно, очевидно же.
Аноним 10/04/17 Пнд 19:50:02  971107
>>971103
Зеленый?
Аноним 10/04/17 Пнд 19:51:46  971108
>>971107
Этот тот уёбок, которому надо вернуть массив без указателей, зелёный. А я всего лишь контраллирую.
Аноним 10/04/17 Пнд 19:58:48  971110
>>970952
Ссылка на память в таких массивах константная, её нельзя переопределить. если вдруг до сих пор не понятно было
Аноним 10/04/17 Пнд 20:00:07  971111
>>970974 >>971107
http://ideone.com/lYnRfd
Аноним 10/04/17 Пнд 20:02:35  971113
>>971111
А там нельзя эту вашу парашу с && заебенить чтобы не было копирования лишнего и память прям в стеке вызывающего выделилась?
Аноним 10/04/17 Пнд 20:07:01  971116
>>971113
Можно. Там не надо её реализовывать для данной задачи. Компилятор протаскивает значение функции, дублировать не приходится.

http://ideone.com/jhnypk
Аноним 10/04/17 Пнд 20:10:40  971120
>>971116
Вау круто оптимизации 2017 год!
А в каких случаях нужно ее явно указывать? Ведь зачем-то ее придумали.
Аноним 10/04/17 Пнд 20:12:06  971124
>>971120
Ну да. Гугли конструктор перемещения.
Аноним 10/04/17 Пнд 20:15:37  971128
https://www.youtube.com/watch?v=qvDtRu68eaI

бамп Богиней
Аноним 10/04/17 Пнд 20:24:47  971134
>>971128
Да что тут говорить. Пока модули и reflection не введут - нечего даже начинать пердуны старые, нашли что вводить в C++17, говноеды. "Си с классами" ковыряйте - и будет вам.
Аноним 10/04/17 Пнд 20:35:50  971140
Чем отличается gnu c++ от других?
Аноним 10/04/17 Пнд 20:38:26  971144
blob (17Кб, 386x251)
blob (1Кб, 98x41)
>>971140
отлеилось
Аноним 10/04/17 Пнд 20:41:02  971147
>>971144
Про язык C слышал?
Аноним 10/04/17 Пнд 20:41:23  971148
>>971144
А?
Аноним 10/04/17 Пнд 20:44:23  971150
>>971147
Ну и? я просто начинающий аутист и мне нужно сделать задачку
Аноним 10/04/17 Пнд 20:46:01  971153
>>971150
C и C++ - разные языки.
Аноним 10/04/17 Пнд 20:46:10  971154
Как сделать codeblocks запускать откомпиленные исполняемые файлы не через cb_console_runner?
Аноним 10/04/17 Пнд 20:47:16  971155
>>971154
Вас там заставляют этой мочой пользоваться?
Аноним 10/04/17 Пнд 20:47:42  971158
>>971153
Ну я знаю. Но что обозначает приставка GNU?
Аноним 10/04/17 Пнд 20:48:26  971161
>>971158
Гугли.
Аноним 10/04/17 Пнд 20:49:50  971164
>>971155
А чем он плох?
Аноним 10/04/17 Пнд 20:50:41  971168
>>971164
Плох тем, что есть альтернативы намного лучше.
Аноним 10/04/17 Пнд 20:52:15  971170
>>971168
И под линуксом? Например? Чем лучше?
Аноним 10/04/17 Пнд 20:53:42  971172
>>971161
Я даун. Буду учить.
Аноним 10/04/17 Пнд 20:57:37  971176
>>971170
Лучше объективно. Пользуйся кодблоком своим, если тебе норм.
Из альтернатив Eclipse, CLion, NetBeans.
Аноним 10/04/17 Пнд 21:04:01  971186
>>971176
>Лучше объективно
Ну что значит "объективно"? Мне интересно узнать, что я упускаю не пользуясь вышеперечисленными IDE.
Аноним 10/04/17 Пнд 21:08:40  971190
>>971186
Я не в силах объяснить, поскольку не помню, чем плох codeblocks.
Аноним 10/04/17 Пнд 21:47:25  971221
>>971190
А примерно так можешь почувствовать вспомнить?
Аноним 10/04/17 Пнд 21:50:03  971224
>>971186
Ими вообще никто не пользуется, и они никому нахуй не нужны. Под LOONIXом у тебя либо qtcreator, либо CLion, как меньше и зол джаваговна. А вообще, с божественной студией ничему не сравнится
Аноним 10/04/17 Пнд 21:51:55  971227
>>971221
Нет. Повторю ещё раз - я не какой-то сектант, мне никто не платил, чтобы IDE двигать. Если тебе норм - пользуюся кодблоком.
Аноним 10/04/17 Пнд 22:06:18  971244
>>971224
Школьник, уймись.
Аноним 10/04/17 Пнд 22:07:01  971247
>>971244
Но я не школьник
Аноним 10/04/17 Пнд 22:08:42  971251
>>971247
> не умеет в -тся -ться
> тащится от студии
...
> ДА Я НЕ ШКОЛЬНИК!11
Аноним 10/04/17 Пнд 22:13:09  971258
>>971251
ты, поди, по ВИМУ угараешь? Есть такой подвид мудаков из каменного века, которые не любят студи.
Аноним 10/04/17 Пнд 22:15:47  971264
>>971258
>>971244
Аноним 10/04/17 Пнд 22:23:04  971274
>>971258
>которые не любят студи.
школотрон не палицо
Аноним 10/04/17 Пнд 22:25:29  971276
С или С++?
Аноним 10/04/17 Пнд 22:26:13  971277
>>971276
Яблоки или груши?
Аноним 10/04/17 Пнд 22:27:38  971279
>>971277
Есть два стула, на одном тайпдефы точёные, на другом - кресты дрочёные.
Аноним 10/04/17 Пнд 22:33:48  971285
>>971276
java
Аноним 10/04/17 Пнд 22:37:08  971288
Аноны, вопрос из интереса. Как сейчас с написанием зловредов? Действительно ли генераторы вирусов уже заменяют собой вирусомейкера? Слышал от сис админа одной крупной компании, что эпоха зловредов написанных человеком прошла, скоро ии с нейросетью будут сами писать зловреды, превосходящие любой написанный человеком
Аноним 10/04/17 Пнд 22:38:46  971291
>>971288
Хуй знает.
Аноним 10/04/17 Пнд 22:39:25  971293
>>971291
Не знает.
Аноним 10/04/17 Пнд 22:40:35  971294
>>971227
Ну ладно
Аноним 10/04/17 Пнд 23:49:23  971393
здаровча!
вопрос серьезный. вот объявили
class APA
{ тут всякие паблики, приваты
} APA;
что означает
APA?
Аноним 10/04/17 Пнд 23:51:56  971397
>>970816 (OP)
здаровча!
вопрос серьезный. вот объявили
class APA
{ тут всякие паблики, приваты
} (звездочка)APA;
что означает (звездочка)APA?
Аноним 11/04/17 Втр 00:08:45  971413
>>971397
Сразу объявляется переменная-указатель на этот класс.
Аноним 11/04/17 Втр 01:04:26  971432
Аноны, поясните в чем разница между operator new и new как ключевое слово. Сам вопрос возник из-за этой статьи:
https://habrahabr.ru/post/185662/

Правильно ли я понял, что сначала вызывается оператор new, потом вызывается new как ключевое слово, который размещает объект в памяти, а уже потом вызывается конструктор. Алсо, как происходит это самое размещение объекта в памяти?
Аноним 11/04/17 Втр 01:09:00  971435
>>971432
Вопрос туда же: зачем оператор new принимает параметр size, ведь мы же знаем размер объекта, для которого вызывается этот оператор
Аноним 11/04/17 Втр 01:16:45  971439
>>971435
тому что new Yoba() это шорткат для (Yoba*)::operator new(sizeof(Yoba))
Аноним 11/04/17 Втр 01:20:10  971443
>>971439
конструктор потелялся после оператора new
Аноним 11/04/17 Втр 01:27:09  971447
>>971439
So? Мы то вызывает оператор new который внутри Yoba, а раз так, то мы можем просто внутри оператора использовать тот же самый sizeof:

class Yoba {

void operator new() {
return malloc(sizeof(Yoba));
//или вообще return malloc(sizeof(
this));
}
};

у меня просто Java головного мозга
Аноним 11/04/17 Втр 02:08:56  971478
>>971158
В зависимости от того, насколько автор программы идиот: либо компилятор GCC, либо -std=gnu++11.
Аноним 11/04/17 Втр 02:12:05  971482
>To convert an std::istream into a boolean, the compiler calls a member function called std::istream::operator void(). This returns a void pointer, which is in turn converted to a boolean (NULL becomes false, any other pointer becomes true). So in this case the compiler generates a call to std::cin.operator void(), just as if you had casted it explicitly such as (void) std::cin.

Конверсия в буль через птр... КТО ЭТО ПРИДУМАЛ?
Аноним 11/04/17 Втр 02:33:17  971498
[code]class A{
};
Аноним 11/04/17 Втр 02:34:05  971499
>>971447
>return malloc(sizeof(this))
Макакина вакаба сожрала твои звёздочки. Нельзя так людей пугать.

Оператор нью это чисто выделение памяти. new T (ака new expression) это оператор new + конструктор T.


Аллоцировать можешь как тебе нравится - хочешь маллоком, хочешь на своём линейном буффере с блекджеком и шлюхами.
Аноним 11/04/17 Втр 02:35:15  971500
struct A : vector<int>
{
};
struct B
{
A a;
};

OK

struct A;
struct B
{
A a;
};
struct A : vector<int>
{
};
Иди нахуй

Поясните
Аноним 11/04/17 Втр 02:35:28  971501
>>971482
А конверсия ptr в буль это типо по человечески?
Аноним 11/04/17 Втр 02:38:55  971504
>>971500
В первом случае кнопилятор сумел вычислить размер структуры А и поэтому сумел запихнуть его в объект Б.

Во втором случае компилятор не ебет, какой размер у структуры А во время объявления структуры Б. Компилятор лишь знает, что ты мамкой поклялся объявить когда-нить структуру А. Если поменяешь на указатель во втором случае - сработает.
Аноним 11/04/17 Втр 02:44:39  971507
>>971504
Спасибо
Аноним 11/04/17 Втр 03:31:52  971519
>>971501
Не очень, но к простоте выражения if(data) привыкаешь. Меня больше позабавило operator voidЗВЁЗДОЧКА.
Аноним 11/04/17 Втр 04:11:00  971527
>>971432
>вызывается new как ключевое слово

>ключевое слово
>вызывается

Откуда вы лезете?

> https://habrahabr.ru/post/185662/
А, с хабрапараши. Вернись на парашу.
Аноним 11/04/17 Втр 04:39:42  971535
Если есть две функции
void test(Int x)
void test(int x)
Компилятор ведь обосрётся если на его платформе sizeof(Int)==sizeof(int)? Нужно писать #if sizeof(Int)==sizeof(int) для второй функции?
Аноним 11/04/17 Втр 04:41:35  971536
>>971535
>Компилятор ведь обосрётся если на его платформе sizeof(Int)==sizeof(int)?
Обязательно обосрётся.
Аноним 11/04/17 Втр 04:41:57  971537
>>971535
Точнее != во втором случае
Аноним 11/04/17 Втр 04:44:49  971538
>>971535
>>971537
Про что несёт?
Аноним 11/04/17 Втр 04:49:08  971539
>>971538
Я хочу сделать так

#define INT long long

void test(INT)
#if sizeof(int) != sizeof(INT)
void test(int)
#endif
Аноним 11/04/17 Втр 04:49:56  971540
>>971539
А зачем?
Аноним 11/04/17 Втр 04:54:05  971541
>>971540
Чтобы не нужно было писать INT(x) при вызове функции, та функция что принимает int это как хелпер для автоматического каста в больший тип, но интересно что будет если окажется что это одинаковые типы для компилятора
Аноним 11/04/17 Втр 04:54:43  971542
>>971541
int и long long это всегда разные типы для компилятора.
Аноним 11/04/17 Втр 07:46:25  971547
>>971482
Раньше по другому было нельзя. Гугли по safe bool idiom насчет того, почему просто operator bool не работает. Теперь-же есть explicit operator bool, и проблемы отпадают.
Аноним 11/04/17 Втр 07:48:41  971548
>>971535
Скорее ты обосрёшься от полного отсутствия знаний.
Аноним 11/04/17 Втр 08:50:37  971560
>>971499
>Оператор нью это чисто выделение памяти. new T (ака new expression) это оператор new + конструктор T.

Т.е. в любой записи по типу Foo *f = new Foo(); new является ключевым словом, которое уже вызывает оператор и конструктор по умолчанию?
Аноним 11/04/17 Втр 13:10:44  971692
>>971560
А ещё убеждается, что при исключении в конструкторе память освобождается.
Аноним 11/04/17 Втр 16:22:09  971870
>>971432
В статье есть ссылки на стандарт, открой и почитай.
Аноним 11/04/17 Втр 16:32:27  971885
>>971432
В частности читни 3.7.4
Аноним 11/04/17 Втр 20:32:05  972016
Возможно в райнтайме создать С функцию чтобы передать адрес как колбек? Например создать std::function и конвертировать
Аноним 11/04/17 Втр 20:40:36  972024
>>972016
По-человечески опиши проблему
Аноним 11/04/17 Втр 20:43:46  972026
>>972016
Но вот, что я нашёл:
http://stackoverflow.com/questions/11016078/is-it-possible-to-create-a-function-dynamically-during-runtime-in-c
Аноним 12/04/17 Срд 06:33:32  972255
>>972024
atexit([](){}), что не понятно? atexit принимает указатель на функцию, которая должна быть прописана в бинарнике. А std::function можно создать динамически, но как конвертировать её в С-функцию - не понятно.
Аноним 12/04/17 Срд 07:16:36  972261
>>972255
> конвертировать её в С-функцию
std::function::target же
Аноним 12/04/17 Срд 08:52:03  972278
>>972261
http://ideone.com/ljYpUt
Сегфолтится. Проблема очевидно в разименовании указателя, который возвращает target(), но если убрать звёздочку - не компилится. Тип в <> неправильно написал?
Аноним 12/04/17 Срд 09:04:18  972280
>>972278
А, только что прочитал, что target() может вернуть nullptr и сразу же забыл об этом и не проверил результат. Вопрос почему target() не работает ещё открыт.
Аноним 12/04/17 Срд 09:43:43  972287
>>971397
class Human {
int health;
std::string name;
} person1;

или тоже самое

class Human {
int health;
std::string name;
};
Human
person1;
Аноним 12/04/17 Срд 09:50:53  972291
>>972287
мог и указатель объявить. (звездочка)person1
Аноним 12/04/17 Срд 09:55:15  972293
Ананасы, у меня вопрос по культе Qt
Имеется необходимость создавать message box`ы. Использую для этих целей QMessageBox::warning(...).
И интересно мне вот что - можно ли как-нибудь запретить создание message box`а, если другой message box уже показан?
Аноним 12/04/17 Срд 10:10:23  972297
>>972255
>А std::function можно создать динамически

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

Если ты хочешь скомпилировать исходный код - это уже другое: >>972026

>>972261
Нет. Target не может сделать функцию из функтора (коим является лямбда), это невозможно.

>>972278
Ты въебал себе в ногу. C++ не сверяет типы. Правильное использование: http://en.cppreference.com/w/cpp/utility/functional/function/target

>>972293
>И интересно мне вот что - можно ли как-нибудь запретить создание message box`а, если другой message box уже показан?
Сделай свой класс/функцию, только который ты используешь и который разрешает только один инстанс (либо не даёт сконструировать объект, либо спинится в конструкторе, пока не разрушится предыдущий кумесагбокс, либо, если это функция, функция спинится в ожидании завершения других функций).
Аноним 12/04/17 Срд 10:19:53  972299
И ещё идея: ты можешь сбацать простенький интерпретатор, и динамические функции твои - это интерпретатор+программа. И даже в этом случае ты не сможешь сделать С-функцию: интерпретатор у тебя один, а в указателе ссылку на программу не передашь.

И если вдруг ты пойдёшь по пути компилирования на лету, то тебе придётся платформозависимо что-то вызывать - LoadLibrary, например. Ни один другой язык программирования не может сбацать тебе экспортные C-функции без компилирования в dynamic library и подгрузки оной, на одна ОС не даст этого сделать.
Аноним 12/04/17 Срд 10:25:31  972300
Вот объявление этого вашего target() в STL GCC:
template<typename _Functor> _Functor target() noexcept;
/// @overload
template<typename _Functor> const _Functor
target() const noexcept;

И никаких тебе С-функций. Почему плюсы дают тебе выстрелить себе в ногу - неизвестно. Можешь поизучать реализацию, она вся в файле functional твоего компилятора.
Аноним 12/04/17 Срд 10:29:39  972301
>>972297
Нужно чтобы пользователь библиотеки мог передать лямбду вместо того чтобы каждый раз прописывать статическую функцию и передавать её адрес. А мне эту лямбду нужно завернуть в другую (то есть нужен захват [&]) и поставить конечную лямбду как колбек, atexit для примера.
Аноним 12/04/17 Срд 10:56:14  972311
>>972301
Ну или хотя бы даже пускай прописывает статическую функцию в С-стиле, только я всё равно не могу обернуть её в другую функцию.

Например как хотелось бы
void yoba(std::function<void(int)> callback)
{
int x = 10;
std::atexit( [=] () { callback(x); } );
}

или хотя бы так
static void callback(int x) {} // всё как в С, никаких лямбд

int x = 10;
std::atexit( [=] () { callback(x); } );
Аноним 12/04/17 Срд 11:01:49  972313
>>972301
Нахуя? Чем тебя указатель на функцию или std::function не устроил?

https://ideone.com/tPjaoY
Аноним 12/04/17 Срд 11:07:48  972315
>>972313
Нужно взаимодействовать с Си, очевидно же
Аноним 12/04/17 Срд 11:13:15  972318
>>972315
https://ideone.com/tPjaoY
Аноним 12/04/17 Срд 11:24:19  972324
>>972301
>поставить конечную лямбду как колбек

Лямбда - копируемый объект (код в образе + память в объекте), функция - это кусок кода по некоторому фиксированному адресу и кусок памяти по некоторому фиксированному адресу.

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

Функцию эту регистрируешь атекситом и наслаждаешься костылём.

https://ideone.com/lep9aV

Можешь завести стек и складывать в него все зарегенные колбеки.
Аноним 12/04/17 Срд 11:56:56  972333
>>972301
>А мне эту лямбду нужно завернуть в другую (то есть нужен захват [&]) и поставить конечную лямбду как колбек, atexit для примера.
Забудь. atexit() принимает указатели на функции. Лямбда с нетривиальным захватом не превращается в указатель на функцию.
Аноним 12/04/17 Срд 11:58:48  972334
Как этот вижуал студио установить-то, помогите пожалуйста!
Скачал 15 версию, запускаю - и программа ни на что не реагирует, просто нажимаю на любые кнопки - не реагирует, и звук такой противный виндосовский. как ошибка какая-то
Аноним 12/04/17 Срд 12:24:34  972341
>>972334
Тот самый момент, когда ты настолько профнепригоден, что даже студию поставить не можешь
Аноним 12/04/17 Срд 12:34:10  972343
>>972334
Пора отращивать прыщи.
Аноним 12/04/17 Срд 13:00:20  972350
>>972343
>>972341
Установил, и теперь вот такая проблема, на пике.
Это пиздец. У меня задание - сделать простой текстовый квест на условиях. Я его сделал, пытаюсь компилировать - и такая хуйня.
При создании проекта выбирал консольное приложение, пустой проект. НИкаких библиотек не ставил.

http://stackoverflow.com/questions/1775865/preventing-console-window-from-closing-on-visual-studio-c-c-console-applicatio


Нагуглил это - не помогло. Гуглил что неправильно проект создал - не помогло.

Помогите пожалуйста, умоляю, может есть какая другая IDE с поддержкой кириллицы?
Аноним 12/04/17 Срд 13:46:32  972366
>>972350
QtCreator.
>и такая хуйня.
Саемшит, брув. Запускаю порграмму, возвращаюсь в студию, а там эта хуйня висит. По-моему так и не поправил.
https://forums.xamarin.com/discussion/89755/how-to-make-visual-studio-not-to-rebuild-project-on-re-run - одинокий гребец
http://stackoverflow.com/questions/2646858/visual-studio-2010-isnt-building-before-a-run-when-there-are-code-changes - а вот это может помочь. Вспоминаю это.
iosbase Аноним 12/04/17 Срд 14:26:03  972386
12,04,17(14-10-[...].png (17Кб, 596x152)
Объясните мне, что значит "open for input"? А если я не укажи ни аут, ни ин, то что будет?

В реализации уже подглядел (там хитро), а где это в стандарте найти?
Аноним 12/04/17 Срд 14:27:59  972387
openmodes.png (14Кб, 415x365)
>>972386
Нашёл.
Аноним 12/04/17 Срд 14:45:48  972393
>>972350
Попробуй ангуляр там, или питон. Очевидно, что кресты это не твое.
Аноним 12/04/17 Срд 14:50:33  972399
>>972393
Конкретно эта ошибка - один из многочисленных багов в студии. Студия - это не кресты, это студия.
Аноним 12/04/17 Срд 14:51:47  972402
>>972399
>>972393
Так я знаю.
В общем в десятый раз все переустановил, ошибка не пропала - но код заработал.

>>972366
Благодарю, качаю.
Аноним 12/04/17 Срд 14:54:19  972403
>>972399
в чем баг конкретно?
Аноним 12/04/17 Срд 14:59:29  972407
Screenshot at 2[...].png (206Кб, 1280x1024)
Бенчмарк говорит что моя либа говно. Красивые лямбды function<Scalar(Scalar)> с захватом чего угодно и управлением стеком за экраном дают прирост производительности всего 30% (в сравнении с обычным скриптом), а если просто на Си сделать stack[0] = factorial( stack[0] ) - прирост производительности 970%
Аноним 12/04/17 Срд 15:59:10  972424
>>972403
В том, что в какой-то момент студия начинает предлагать пересобрать проект после каждого запуска, и при этом ничего не клмпилирует и не линкует, только один файлик какой-то обновляет. Читай ссылку на СО, там у людей в точности то же.
>>972407
Ты не смог, но ты пытался. Попробуй -O3. Команды матчишь мапом? Есть перфект хэш, вроде: даёшь набор ключей, и он минимизирует линейный поиск по вёдрам.

Оу, и ещё: http://en.cppreference.com/w/cpp/io/ios_base/sync_with_stdio . Если ты из входа читаешь, это важно.

И -funroll-loops попробуй.
Аноним 12/04/17 Срд 15:59:54  972425
>>972424
>сли ты из входа читаешь, это важно.
А, стоп, у тебя там цикл же. Не, неважно.
Аноним 12/04/17 Срд 16:05:58  972427
>>972350
Это такая шутка? Ты не можешь просто нажать да?
Аноним 12/04/17 Срд 16:11:21  972430
>>972407
std::function это типа shared_ptr: почти всегда (за исключением размера лямбды ≤ 1-2 sizeof(void*)) динамическое выделение памяти и подсчёт ссылок.
Аноним 12/04/17 Срд 17:17:44  972474
Здарова, куканы.
Подскажите, пожалуйста, хорошую (не обязательно популярную) библиотеку для работы с асинхронным IO (файловые операции и сетевые сокеты обязательно), можно даже на Цэ.
Аноним 12/04/17 Срд 18:01:42  972488
Screenshot at 2[...].png (71Кб, 891x479)
Screenshot at 2[...].png (139Кб, 1041x667)
Screenshot at 2[...].png (31Кб, 877x133)
>>972424
Коллбеки лежат в четырёх unordered_map<string, function> и в зависимости от контекста вызова и количества аргументов выбирается одна из мап и вызываеется функция _callbacks.find(name).second(arg)

Такие названия функций из-за того что шаблоны и перегрузка функций не работают с function<void(...)> и function<...(void)>

На 3 создание функции, эквивалетное sub sub_name { ... }
Работает со скоростью света, но как оказалось обернуть function ни во что нельзя, и чтобы пользоваться этим нужно лезть в самые внутренности интерпретатора, которые никто кроме меня не понимает

>>972430
И как быть, может указатели на std::function хранить?
Аноним 12/04/17 Срд 18:03:56  972490
>>972488
Какая же ебанная лапша.
Прости Господи.
Аноним 12/04/17 Срд 18:22:05  972510
>>972488
>И как быть, может указатели на std::function хранить?
Чтобы ещё из-за одного уровня indirection больше тормозило?
Аноним 12/04/17 Срд 18:35:15  972528
Помогите найти ошибку http://ideone.com/Ez0l8f пожалуйста. Лаба до затра горит.
Аноним 12/04/17 Срд 18:37:15  972531
>>972528
https://github.com/sosachbot/cppthreadhat/wiki#Памятка-нюфагу
Аноним 12/04/17 Срд 18:49:41  972543
this-cannot-be-[...].gif (1689Кб, 200x150)
>>972528
>Java
Аноним 12/04/17 Срд 21:43:19  972649
>>972474
Очевидный boost::asio (годные гайды ищи сам, их вроде не существует)
Аноним 12/04/17 Срд 21:46:14  972656
>>972528
У тебя там delete[] в деструкторе вызывается для обычных указателей, не на динамическую память. Конечно же ошибка
Аноним 12/04/17 Срд 23:12:44  972706
почему в gcc 6.3.0 не завезли std::quick_exit ?
error: 'quick_exit' is not a member of 'std'
Аноним 12/04/17 Срд 23:22:34  972710
>>972706
https://wandbox.org/permlink/Ry0dfudgKLmYOvpQ
Аноним 13/04/17 Чтв 01:00:58  972750
>>971128
ЧТО ЕТО ЗА НАХУЙ?!
У меня кровь из глаз полилась. Это бложик фемо-спортсменки-программистки на ютубе? WTF?!
Аноним 13/04/17 Чтв 04:28:17  972794
>>972656
либо nullptr пусть пишет
Аноним 13/04/17 Чтв 07:04:19  972804
>>971128
теребонькнул
Аноним 13/04/17 Чтв 13:44:23  972899
>>972528
Надеюсь на то, что уже сгорела.
Аноним 13/04/17 Чтв 13:48:08  972903
>>972656
Там не только в этом проблема. :3
Аноним 13/04/17 Чтв 13:49:09  972904
>>972656
Скажем так, delete[] и должен вызываться для обычных указателей - указатели, с которыми работает delete[], ничем не отличаются от указателей, с коротыми работает delete.
Аноним 13/04/17 Чтв 13:49:25  972905
>>972904
Кроме......
Аноним 13/04/17 Чтв 15:55:28  972968
Кто-нибудь может сказать, если для работы требуется opengl версии 2, а у меня 4.5, работать не будет? Они не совместимы?
Аноним 13/04/17 Чтв 19:03:52  973110
>>972968
Можете не отвечать, если кому пригодится

http://www.prog.org.ru/index.php?topic=27216.msg196943#msg196943
Аноним 13/04/17 Чтв 22:38:13  973245
>>971008
Бамп
Аноним 13/04/17 Чтв 23:50:05  973271
Помогите разобраться с gtkmm, хотелось бы книжек или гайдов где всё подробно расписано, гуглил, не нашёл.
Аноним 14/04/17 Птн 01:37:07  973310
У меня программа крашится на выходе, причем иногда она крашится, а иногда, блеать, завершается с кодом 0. Я все деструкторы проверил, вроде память не течет. Что могло пойти не так? Если что, у меня Qt-объекты.
Аноним 14/04/17 Птн 02:14:19  973315
>>973310
Падает из-за Segmentation Fault. Как его найти-то теперь?
Аноним 14/04/17 Птн 02:26:02  973317
>>973315
valgrind
Аноним 14/04/17 Птн 02:27:57  973318
>>973317
Я на шиндошс пишу
Аноним 14/04/17 Птн 02:29:06  973319
>>973318
Это же Qt, скомпилится где угодно.
Аноним 14/04/17 Птн 02:31:53  973320
>>973318
Вот какая-то петушня есть http://www.drmemory.org/
Аноним 14/04/17 Птн 02:58:10  973323
>>973318
Gflags
Аноним 14/04/17 Птн 06:57:49  973339
Как грамотно запретить создание второго объекта класса при соответсвующем дефайне?

Yoba::Yoba()
{
_id = _lastid++;
#ifndef MULTIPLICITY
if(_id > 0)
throw ...
#endif
}

как-то не очень выглядит по-моему, но ничего другого в голову не приходит
Аноним 14/04/17 Птн 07:18:27  973341
>>973339
> Как грамотно запретить создание второго объекта класса при соответсвующем дефайне?
Синглтон?
Аноним 14/04/17 Птн 08:37:37  973355
>>973315
>Как его найти-то теперь?
Дебуг билд и GDB.
>>973318
Можешь взгромоздить любую линукс-ОС и скомпилировать там.
Аноним 14/04/17 Птн 08:51:39  973359
>>973341
Бочку?
Аноним 14/04/17 Птн 13:53:11  973466
>>973339
Городить дефайны внутри конструкторов крайне грязно и выдаёт плохой вкус к коду.

Лучше напиши отдельный синглтон-класс и отдельный просто-класс. Дефайном определяй тип класса.

Как-то так:
//defines.hpp
#ifdef MULTIPLICITY
#define Yoba MultiYoba
#else
#define Yoba SingleYoba
#endif

//main.cpp
Yoba* yoba = new Yoba();

Т.е. в коде создание класса будет чистым, без мусора, а весь мусор будет скрыт в отдельный файл.
Аноним 14/04/17 Птн 14:20:52  973482
>>973466
Блядь, за полчаса даже никто не обосрал меня за то, что я использовал дефайны вместо тайпдефов? Цепепетред, ты меня разочаровал.
Аноним 14/04/17 Птн 14:49:50  973500
>>973466
MultiYoba это неплохая идея кстати. Я через #ifndef просто прятал ряд методов которые не нужны в однопоточном приложении, а можно же просто наследовать в класс Multi и добавить эти методы туда.
Аноним 14/04/17 Птн 14:51:31  973503
>>973500
Только используй тайпдефы, а не дефайны, так надёжнее.
Аноним 14/04/17 Птн 14:58:29  973512
>>973503
Да тут препроцессор вообще не нужен. Можно просто сделать вроде

class MultiYoba : public Yoba
MultiYoba::test()
{
pthread_set_context();
Yoba::test();
}

а базовый класс вообще не трогать
Аноним 14/04/17 Птн 15:13:13  973528
>>973339
const bool MULTIPLICITY=true;

Yoba::Yoba()
{
_id = _lastid++;
if(MULTIPLICITY && _id > 0)
throw ...
}

Чо сложного-то?
Аноним 14/04/17 Птн 15:20:08  973532
>>973528
Но компиляция, -DMULTIPLICITY там..
Аноним 14/04/17 Птн 15:27:32  973536
>>973532
Так бы и сказал. С какого фига то, что может навредить программе, управляется из компилятора, кстати?
Аноним 14/04/17 Птн 15:41:36  973543
>>973536
Так же все делают? Единственное, что мне не понравилось - это когда библиотека собирается с одними дефайнами, которые меняют код, а приложение, с котором линкуется библиотека, компилирует заголовки библиотеки с другими дефайнами - никаких ошибок компиляции нет, только сегфолты в рантайме.
Аноним 14/04/17 Птн 16:31:35  973581
>>973500
Не проще использовать подходящий паттерн?
стратегию, например?
Аноним 14/04/17 Птн 16:53:55  973602
>>973543
>Так же все делают?
Ни разу не видел такого. Всё то, от чего зависит корректность программы, должно быть в программе.

Иногда пишут объфвления констант перед инклудом, чтобы в инклуде была нужная константа - эта практика лучше.
Аноним 14/04/17 Птн 17:37:58  973632
>>973581
Все паттерны - это рантайм. Зачем ему лишний оверхед?
Аноним 14/04/17 Птн 19:39:42  973738
>>973339
Ну используй фабрику или фабричный метод, например:

class Yoba {
public:
static std::unique_ptr<Yoba> create();

private:
Yoba();
};

std::unique_ptr<Yoba> Yoba::create() {
#ifndef MULTIPLE_INSTANCES
return std::unique_ptr<Yoba>(new Yoba());
#else
static std::atomic<bool> instanceExists(false);

bool expectedExists = false;
if (instanceExists.compare_exchange_strong(expectedExists, true, std::memory_order_acq_rel, std::memory_order_seq_cst)) {
return std::unique_ptr<Yoba>(new Yoba());
}
#endif
}
Аноним 15/04/17 Суб 07:39:43  973896
Можете закидать меня ссаными тряпками. Как подключить spdlog к своему проекту? Я хочу, чтоб эта хуёвина лежала в исходниках моего проекта. Скопировал я её к себе, подключил header, пытаюсь собрать, а visual studio мне такая: "пошёл ка ты нахуй" говорит test\test\spdlog\spdlog.h(12): fatal error C1083: Не удается открыть файл включение: spdlog/tweakme.h: No such file or directory хотя этот файлик в скопированной папке лежит. Я явно что-то делаю не так. Ткните мордой, что именно
Аноним 15/04/17 Суб 08:16:26  973900
>>973896
Тебе нужно прописать пути включений файлов, смотри в настройках препроцессора, если я не ошибаюсь. Если это к тому же не header-only библиотека, тогда тебе нужно в путях поиска линковщика добавить путь к библиотеке (самому .lib файлу) и добавить в список линкуемых библиотек ее (соотвественно my_static_lib.lib)
Аноним 15/04/17 Суб 08:25:08  973901
>>973900
Это header-only library.
Как-то ебануто выглядит прописывать в путях включения путь к проекту
Если пути включения прописать всё заебись работает
Аноним 15/04/17 Суб 16:09:02  974049
>>973901
Хм, а относительные пути не поддерживаются? По идее должны, но тут точно ничего сказать не могу.
Аноним 15/04/17 Суб 16:16:51  974053
>>973896
ООООООООО, слушай, я догадался.
https://github.com/gabime/spdlog/blob/master/include/spdlog/spdlog.h

Включение в угловых скобках. Это допустимо только тогда, когда хеадер в папках поиска. Когда ты добавляешь пути инклудов, ты расширяешь жтот список, и всё работает.

Если ты этого не сделал, то если инклуд находится в папке "проекта" в папке H и хочет включиьт инклуд из отй же папки, то в нём должно быть не
#include "H/fuck.h" - это означает "H/H/fuck.h", так как это путь относительно этого инклуда, а
#include "fuck.h".
Аноним 15/04/17 Суб 19:08:03  974127
Как сделать статический блок в const функции?

virtual string to_string() const
{
if(!_loaded) { // нельзя менять поля в const
_loaded = true;
load()
}
...
}
Аноним 15/04/17 Суб 19:10:03  974128
>>974127
mutable
Аноним 15/04/17 Суб 21:02:41  974192
1492278969.jpg (77Кб, 807x430)
1492278965.jpg (5Кб, 252x270)
Сап сиплюсач.
Ты - последняя надежда.
Нигде не смог найти инфы как это сделать и вообще можно ли так.
Нужно в один датагрид визуалка 2010 засунуть 2 и более таблиц, чтобы они отображались как одна посредством связей как в ацессах, при нажатии на какую-то строку.
Пробовал через запросы, указывал несколько таблиц, заполнял коллекции - либо отображалась одна таблица, либо совсем ломалось.
Возможно ли такое и как это сделать?
Аноним 15/04/17 Суб 21:40:23  974205
>>974192
Попробуй загуглить "c++ forms datagridview несколько таблиц", там вроде достаточно ссылок с возможными решениями.
Сам я не помогу - не шарю.
Аноним 15/04/17 Суб 21:48:56  974211
>>974205
Дак в том-то и дело, что все уже прогуглено.
Из подобного выдает все онли для шарпа.
Пытался переписать код от шарпа - не смог, одни ошибки.
Аноним 15/04/17 Суб 22:09:23  974219
>>974211
Если ты всё же хочешь получить какую-то помощь, нужно дать больше информации. В формах ты шарящего вряд ли тут найдёшь. Если не боишься, можешь проект кинуть, наработки, что пытался делать.
Аноним 16/04/17 Вск 01:27:52  974276
>>974127
Не понял, объясни.
Аноним 16/04/17 Вск 04:52:56  974295
>>974053
Я остановился на том, что прописал путь во включения.
Аноним 16/04/17 Вск 11:26:46  974360
>>974276
Метод to_string должен один раз подгрузить ресурсы при том что он const.
Поле mutable bool _loaded вроде работает
Аноним 16/04/17 Вск 16:56:26  974473
>>974360
Не забудь про thread safety.
Аноним 16/04/17 Вск 17:58:40  974496
Вкатился в кресты, полёт нормальный. До этого полтора года страдал хуйнёй на пистоне. Учу тут http://www.learncpp.com/
Стоит добавить в шапку этот сайт, как по мне.
Аноним 16/04/17 Вск 19:39:42  974538
кто - нибудь реально на крестах работает из всего треда?
Аноним 16/04/17 Вск 20:07:36  974548
>>974538
Не думаю. Что бы на них работать нужно быть оче жестким спецом, а как для хобби кресты самое то, я щитаю.
Аноним 16/04/17 Вск 20:29:07  974564
>>974538
работаю крестовым сеньором-помидором, но сижу, в основном, в ридонли.
Аноним 16/04/17 Вск 20:46:49  974572
Тупой первак итт. Если у меня в вордовском доке таблица, и мне нужно считывание строки, при чем в некоторых ячейках много строк.
Если я сделаю так
string S;
while ( getline(in,S))
{
}
У меня будет считываться строка таблицы или строка ячейки?
Аноним 16/04/17 Вск 21:24:54  974584
>>974572
Ты бинарную кашу считаешь, а не строки и таблицы.
Аноним 16/04/17 Вск 22:12:26  974599
>>974538
пишу под эмбедед на плюсах
тред чуть менее, чем полностью состоит из легко-прогугливаемых вопросов от школьников и вкатывальщиков. поэтому r-only
Аноним 16/04/17 Вск 22:24:57  974605
>>974572
Открой текстовым редактором вроде Notepad++ и посмотри, что ты читаешь.
Тебе может помочь OLE Automation ебучий кошмар, нирикамендую или какая-нибудь либа примеров не знаю
Аноним 16/04/17 Вск 22:46:52  974613
>>974572
> Если у меня в вордовском доке таблица, и мне нужно считывание строки,

Binary office formats specification.
XML office formats specification.
Аноним 16/04/17 Вск 23:41:32  974642
Горения жепы тред
Вся суть плюсов:
std::string str = "Hello";
const char* str_c = str.c_str();
printf("%s\n", str_c);
str += "Dude";
printf("%s\n", str_c);

Такой Оохуенный const, что второй раз будет напечатано HelloDude. Ебучий язык
Аноним 16/04/17 Вск 23:44:44  974643
>>974642
Вы морально не готовы к крестам.
http://stackoverflow.com/questions/2156305/double-const-declaration
Аноним 16/04/17 Вск 23:54:29  974648
>>974643
Я в курсах про константный указатель на не константные данные, и не константный указатель на константные данные. Просто нахуй у меня бомбит от этого ебанутого дизайна, ебучие байтоебы, лучше бы константные строки сделали с другим модификатором.
Аноним 17/04/17 Пнд 00:08:49  974657
>>974642
Соответственно, еще такой вопрос:
Если я хочу написать свой класс исключения, который наследуется от std::runtime_error, но содержит еще дополнительную информацию - номер строки, имя файла, имя функции и тд. Я определяю конструктор так:
BaseException(const char msg, int line, const char file, const char function) :
std::runtime_error(msg), m_line(line), m_file(file), m_function(function), m_exceptionType("BaseException") {}

Пока все ок, но я еще хочу написать свою функцию what(); которая вернет одну const char
которая является конкатенацией std::runtime_error::what() и моих полей(m_function, m_file и тд). Как это сделать? Если я просто создам строку внутри функции и верну s.c_srt() то у меня будет хуйня, т.к. объект на стеке и после выхода он наебнется. Получается, единственный варик - создавать еще одно дополнительное поле в классе моего исключения?
Аноним 17/04/17 Пнд 00:15:44  974662
>>974642
Написал хуйню, ничерта не понимая - виноват язык. Следущий
Аноним 17/04/17 Пнд 00:16:42  974663
>>974657
да
Аноним 17/04/17 Пнд 00:20:11  974664
Сап, анон.

Есть задача, которая подразумевает считывание чисел из файла. Если создавать буфер и ifstream'ом туда пихать, а затем засовывать в массив, то все работает хорошо. Если же использовать fgets, считывая по символу и формируя строку с числом, которая потом вновь оказывается в массиве – программа ломается на одном из тестов (содержание тестов неизвестно).

Есть предположения/мысли, что я мог не учесть, забыть и так далее? Считывание на известных тестах работает правильно.
Аноним 17/04/17 Пнд 00:21:43  974667
>>974664
если есть вариант считать даблы из файла каким-нибудь еще более быстрым способом, то будет вообще здорово.
Аноним 17/04/17 Пнд 00:22:03  974668
>>974657
А если захочешь соединять поля во what(), придётся делать ещё одно поле, потому что результат контатации строк тоже где-то надо хранить
Аноним 17/04/17 Пнд 00:22:15  974669
>>974664
Щас я вселюсь в птичку, и узнаю, что там внутри этих тестов и твоего кода.

Ну серьезно, телепаты в отпуске.
Аноним 17/04/17 Пнд 00:23:35  974670
>>974669
>>974664
https://pastebin.com/DZETEjgn
Аноним 17/04/17 Пнд 00:56:03  974685
>>974668
>А если захочешь соединять поля во what(), придётся делать ещё одно поле, потому что результат контатации строк тоже где-то надо хранить

Так на пике же не так?или это такой тонкий подъеб?
Аноним 17/04/17 Пнд 01:05:05  974686
Хочу создать аллокатор с 2 шаблонными параметрами, при этом второй параметр зависит от первого. Пишу:
template<typename T, void f(T)> myallocator: public std::allocator<T>

И вот, по ходу дела нарываюсь на rebind:
template<typename Tp1> struct rebind{
typedef myallocator<Tp1,(???)> other;
}

И что это, ебать? Затребовали создать то же самое, но с другим названием параметра шаблона, заебись! Ну так а мне что ставить на месте (???) ?

При создании объекта как 2 аргумент шаблона передаётся указатель на функцию void f(T). В rebind в typedef вроде как должна использоваться void f(Tp1). Но хуй там, мы уже передали в параметр шаблона void f(T).

Получается, требование создания rebind в таком виде делает невозможным использование нонтайп параметров, зависимых от тайп параметров, без этой херни нихуя не работает.

Что за долбаебы писали STL?

|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

Аноним 17/04/17 Пнд 01:05:11  974688
>>974642
The pointer obtained from c_str() may be invalidated by:
- Passing a non-const reference to the string to any standard library function, or
- Calling non-const member functions on the string, excluding operator[], at(), front(), back(), begin(), rbegin(), end() and rend().

Что тебе непонятно?
Аноним 17/04/17 Пнд 01:20:38  974690
>>974670
Почему читается по два байта за раз из потока?
Аноним 17/04/17 Пнд 01:25:08  974691
>>974686
>Что за долбаебы писали STL

Причем тут шаблоны и стл? Стл писал математик из мгу, поэтому они такие и хуевые. А по шаблонам есть книги Александреску и Вундервурда где на 1к+ страниц все подробно разъяснено почему так, а не иначе. После прочтения, сможешь запускать программы на этапе компиляции, ибо шаблоны полны по тьюрингу
Аноним 17/04/17 Пнд 01:26:25  974692
>>974691
> После прочтения, сможешь запускать программы на этапе компиляции, ибо шаблоны полны по тьюрингу
Брайнфук тоже полон. Только на нём не напишешь нихуя полезного. Как и на шаблонах.
Dmitry 17/04/17 Пнд 01:28:15  974693
>>974691
>по тьюрингу
По фрейду маня.
Dmitry 17/04/17 Пнд 01:28:57  974694
>>974690
Буфферизация такая ;)
Аноним 17/04/17 Пнд 01:31:03  974696
>>974693
Нахуя что-то писать, если нечего сказать по делу. Лишь бы спиздануть хуйню какую-то.
Аноним 17/04/17 Пнд 01:33:14  974699
>>974690
потому что вторым символом всегда кладется нулевой, или это не так работает?
Аноним 17/04/17 Пнд 01:34:55  974701
>>974691
При том, что в STL посрать негде, везде напиханы ебучие шаблоны, и уж если они их использовали, то обязаны были сделать все юзер френдли. Эти уебки блять пишут СТАНДАРТНУЮ библиотеку, а не васянский высер (тогда я бы понял), при этом обоссываясь на каждом шагу и говнокодя гнилые костыли которые разваливаются к хуям при первом пуке
Аноним 17/04/17 Пнд 01:36:25  974702
>>974686
http://en.cppreference.com/w/cpp/memory/memory_resource
Аноним 17/04/17 Пнд 01:37:16  974704
>>974699
Ты о чем? У тебя в файле чего изначально записано то?
Dmitry 17/04/17 Пнд 01:39:02  974705
>>974696
Оно не юзабельно, еще что сказать?
Зачем на этапе компиляции исполнять, ты поехавший? Вместо динамического бинарника 8кб тащить С++ тулчейн - охуеть
Аноним 17/04/17 Пнд 01:45:41  974709
>>974704
в файле обычные даблы в формате 1.2342, судя по тем тестам, которые у меня есть. В каждой строке n штук, строк также n.

Мне нужно сделать NxN матрицу из них. Длину одного числа я не знаю заранее (может быть 1.0, а может 121.77).

Есть вариант с ifstream, но хотелось бы чего-нибудь побыстрее.
Аноним 17/04/17 Пнд 01:51:46  974710
>>974705
>Зачем на этапе компиляции исполнять

Потому что можносовсем отупели со своими байтами, уже в сарказм не могут. То, что так можно делать, как бе намекает, что шаблоны - кривой высер
Аноним 17/04/17 Пнд 02:00:51  974711
>>974709
Чем числа в строке разделены, пробелами?
Если да, то читаешь строку из файла
std::string buf;
std::getline(stream, buf);
Инициализируешь этой строкой строковый поток
std::stringstream ss{buf}
Читаешь из строкового буфера числа
while (!ss.eof())
{
float i;
ss >> i;
}
Аноним 17/04/17 Пнд 02:10:42  974716
>>974711
да, пробелами. Мне нужен максимально быстрый вариант, собственно поэтому пришел сюда.

Этот самый быстрый или есть еще круче?
Аноним 17/04/17 Пнд 02:25:02  974720
>>974716
>или есть еще круче

обычный scanf же быстрее
http://stackoverflow.com/questions/1042110/using-scanf-in-c-programs-is-faster-than-using-cin

Аноним 17/04/17 Пнд 02:34:26  974722
>>974720
с fscanf выполняется 12.953 секунд в лучшем случае, с stringstream слишком долго выходит.

Пока что лучший результат получается с ifstream с записью в буфер – 12.713, а потом преобразованием с помощью stod. Это граница или можно еще лучше?
Аноним 17/04/17 Пнд 09:41:33  974765
>>974642
твой c_str вообще может указывать на незанятую память, так как приконкатенации возможен реаллок.
Аноним 17/04/17 Пнд 09:50:07  974766
>>974720
Бабка надвое скказала. Изначально cin/cout/cerr не буферизуются вообще, так как авторы стандарта предполагали возможность использовать iostream вместе с stdio.h.

Но у поциента не cin, у него считывание из файла, и там такой инхронизации нет. Прочитай свой ответ до конца.
Аноним 17/04/17 Пнд 11:03:47  974786
Хочу разобраться с передачей объекта по стеку вызов и в каких случаях нужно писать return std::move().
http://cpp.sh/5ao2f - что за магия тут происходит? Получается делать return std::move() бесмысленно потому что это поведение по умолчанию?
Аноним 17/04/17 Пнд 11:07:47  974788
>>974786
Точнее даже круче, потому что объект просто создаётся в main.
Аноним 17/04/17 Пнд 13:04:59  974840
Решил Branch Prediction протестировать. Сравнил производительность версии с богомерзкими if'ами и няшными указателями на функции. Получилось вот что:

https://pastebin.com/7iawqUSx

Unbranched-версия обычно быстрее на 5-10%, хотя в некоторых случаях Branched-версия вырывается вперёд. Кто может пояснить, почему так? В каких случаях лучше использовать какую версию?
Аноним 17/04/17 Пнд 13:06:47  974843
>>974786
То что у тебя происходит называется RVO и оно более эффективно так как полностью исключается вызов move-конструктора. Стандарт напрямую разрешает компилятору такие оптимизации, даже если move-конструктор имеет сайдэффекты (и такая оптимизация поломает твою программу). В стандарте это упоминается как copy elision (более широкий случай который кроме move-конструктора покрывает еще и copy-конструктор). Если ты нормальный парень и твои move-конструкторы не имеют сайдэффектов, то писать return std::move() нет смысла - просто возвращаешь значение и компилятор или оптимизирует с помощью RVO или вызовет move-конструктор. Использование return std::move() может принудительно вызвать конструктор (если его вызов необходим ради сайдэффектов), но тут наверное от компилятора зависит. Я не думаю что есть что-то что запрещает хитрожопому компилятору просто проигнорировать вызов std::move() в таком случае, хотя хуй знает на самом деле.
sage Аноним 17/04/17 Пнд 13:22:37  974858
>>974786
Заебали с платиновыми вопросами. На SO объяснили всё уже 100 раз.
Аноним 17/04/17 Пнд 13:24:04  974860
>>974840
Посмотрел ассемблерный листинг. Branched-версия генерирует cmp+jbe, Unbranched-версия - cmova и call по QWORD PTR. Кто может пояснить по хардкору за подобное? Говорят, cmov* многократно быстрее, но есть ли где-нибудь полное разжёвывание по полочкам?
Аноним 17/04/17 Пнд 13:25:00  974862
>>974843
Я пока посмотрел на SO, там говорят что надо везде писать return value. Сделал так у себя и посмотрел что с конструкторами происходит. Обнаружилось что если сделать так

return create_object().modify();

то вызывается конструктор копирования, а если так

Object result = create_object();
result.modify();
return result;

то вызывается только стандартный конструктор и только один раз (внутри create_object). Вторая конструкция правильная.
modify() возвращает *this если не понятно

Аноним 17/04/17 Пнд 13:43:42  974886
>>974668
>>974657

Аноны, помогите. Если просто добавить в класс еще одно поле, то энивей его надо инициализировать в конструкторе, т.к. what() имеет модификатор const и модифицировать строку я уже не могу. Офк можно просто создать свой метод, а не юзать what(), но можно ли как-то канонически написать свое исключение?
Аноним 17/04/17 Пнд 14:20:25  974937
>>974886
Например добавь const поле в класс, а в what() сделай не const ссылку на него (что-то типа std::string& s = const_cast<std::string&>(this->message);) и через эту ссылку измени.
Аноним 17/04/17 Пнд 14:36:57  974957
Ананасы, где можно почитать, как работает RTTI?
Аноним 17/04/17 Пнд 14:51:35  974969
Screenshot at 2[...].png (321Кб, 1280x1024)
И так, TODOшки подходят к нулю и 175 тестов стабильно проходятся параллельно в нескольких тредах, можно выкатывать версию 0.0.1.
https://github.com/theanonym/libyoba-perl

Всего ушло около 3 недель и 2500 строк, осталось ещё добавить интеграцию с некоторыми модулями вроде AnyEvent, добавить поддержку событий для лучшей связи с интерпретатором
Аноним 17/04/17 Пнд 14:53:08  974970
>>974969
Заебись название
Аноним 17/04/17 Пнд 14:59:29  974975
>>974957
А что там читать-то?

Если какая-то абстракция предусматривает явное указание начала и конца работы с ней (выделение/освобождение памяти, открытие/закрытие файла или сокета, монопольный захват/освобождение устройства), то вызов начала работы с ней должен быть в конструкторе, а конца - в деструкторе класса-обёртки.
Аноним 17/04/17 Пнд 15:47:01  975016
>>974860
Наверное здеся http://stackoverflow.com/questions/14131096/why-is-a-conditional-move-not-vulnerable-for-branch-prediction-failure
Аноним 17/04/17 Пнд 15:48:47  975019
>>974975
Просили про RTTI, зачем ты рассказываешь про RAII?
Аноним 17/04/17 Пнд 15:51:34  975023
>>974957
Оно зависит от ABI.
В Itanium C++ ABI RTTI устроен довольно просто, информация об иерархии классов "закодирована" в std::type_info (в наследниках от него). https://itanium-cxx-abi.github.io/cxx-abi/abi.html

В MSABI посложнее, но тоже давно отревершено, нагуглишь легко.
Аноним 17/04/17 Пнд 15:51:45  975024
>>975019
А, чёрт. Зачем столько одинаковых аббревиатур? Я так годное место работы чуть не просрал, перепутав STL с SFML.
Аноним 17/04/17 Пнд 15:56:50  975031
>>974957
>>975023
Ссылка поточнее https://itanium-cxx-abi.github.io/cxx-abi/abi.html#rtti
Аноним 17/04/17 Пнд 17:23:49  975093
>>974969
Что-то у тебя с документацией скудновато, как я посмотрю. Хотя бы Doxygen для приличия влипил (@briedf @param @return и вся хуйня), потом это сложнее будет документировать, ИМХО.
Аноним 17/04/17 Пнд 18:20:13  975123
>>974192
Как писать на С++ по windows( формы и т.д.)? что читать(какие средства разработки)?
Аноним 17/04/17 Пнд 18:34:47  975127
>>975123
qt
Аноним 17/04/17 Пнд 21:28:44  975253
>>970816 (OP)
Анон, читаю книгу Страуструпа - Программирование. Принципы и практика использования C++, и чет как-то мне не понятно, это перевод наш косячный, или такая книга и есть.
Стандартную библиотеку предлагают в книге скачать, д.к. она не работает, что бы я не делал. Функция sort() вообще как-то по странному вызывается. В задачах текст написан так, что я не понимаю, что от меня хотят. И это только начало. Кто читал? Скажите, дальше в таком же духе будет? Может есть книги покачественней? Понимаю, что книга от создателя языка, но уже многовато косяков.
Аноним 17/04/17 Пнд 21:41:41  975267
>>975253
Читай это.
http://www.learncpp.com/
Автор все топики обновляет, объясняет доходчиво.
Правда на ангельском.
Мне, как новичку в крестах, заходит на заебись.
Потом уже сам буду какие-то книги искать.
Аноним 17/04/17 Пнд 21:44:57  975269
>>975093
У меня есть настроенный доксиген, генерирует index.html и прочие страницы, но как его на github.io залить кто-нибудь знает?
Аноним 17/04/17 Пнд 21:54:36  975276
>>975269
Создать сает на Github pages и залить туды.
Аноним 17/04/17 Пнд 22:25:05  975301
>>975253
>Стандартную библиотеку предлагают в книге скачать, д.к. она не работает
Шта?
Аноним 17/04/17 Пнд 22:56:34  975321
>>975253
Она платная если что.
Но даже так там столько говна, что я бы подумал
Аноним 17/04/17 Пнд 22:57:07  975322
>>975253
Тоже учу кресты по нему. Косяков многовато, но я мазохист и мне нравится разбираться, почему не работает то или иное. По поводу sort() это косяк нового издания, он есть и в оригинале. Чтобы работало, нужно, во-первых, прописать #include <algorithm>, во-вторых, писать так: sort(v.begin(), v.end()), где v - вектор.
По поводу говно "библиотеки", которую Страуструп пихает в начале std_lib_facilities.h, скажу что у меня она тоже не работает. Если тебе нужны векторы, то пиши #include <vector>, правда не забудь включить поддержку стандарта c++11 в своем компиляторе.
Аноним 17/04/17 Пнд 23:01:10  975326
>>975321
Кто платная? Книга? Ссылка на перевод есть в шапке.
Аноним 17/04/17 Пнд 23:04:13  975327
Я долбоёб. Как мне две функции под один шаблон запихать?
Аноним 18/04/17 Втр 02:07:01  975372
>>975327
Гхм, нахуя? Каков будет результат запихивания в один шаблон, по-твоему?
Аноним 18/04/17 Втр 05:34:22  975385
>>975253
Вангую что ты скачал старую библиотеку, а тебе нудна новая .тоже с ней ебся, пока не погуглил на стаковерфлов. Вобщем, гугл в помощ
Аноним 18/04/17 Втр 06:14:24  975387
>>975322
Да, я тоже смог разобраться с сортировкой. С одной стороны, нахуй такие издания книг. С другой стороны, пока найдешь, почему это говно не работает, узнаешь овердохуя.
Аноним 18/04/17 Втр 08:00:29  975398
Товарищи, срочно нужна помощь, через час еду в универчик, а лабу переделать так и не успел.
Как проверить на равенство 2 действительных чилса
Вот кусок кода который нужно исправить
while( a>=x1 ) ;
printf("--------------------\n" );

printf("\n" ); printf("\n" );
} ;
Скину 50р на тел. ответившему, больше нет на карте
Аноним 18/04/17 Втр 09:03:10  975408
>>975398
a == b
Как оплатить удобнее?
Аноним 18/04/17 Втр 09:20:20  975411
>>975398
if (epsilon > abs(a - b)) { ... }
где epsilon это необходимая точность, типа 0.00001
Аноним 18/04/17 Втр 09:58:02  975426
>>975093
Так, получилось залить доксиген https://theanonym.github.io/libyoba-perl/annotated.html
Можете посмеяться над моим английским, серьёзные ошибки неплохо бы исправить пока
Аноним 18/04/17 Втр 14:53:27  975560
>>975123
wxWidgets
Аноним 18/04/17 Втр 16:37:18  975625
Не могу понять -
int f(int n, int a, int b) {
if (n > b) return 0;
if (a <= n && n <= b) return 1;
return f(2 n + 1, a, b) + f(2 n + 2, a, b);
}

1. Какие рекурсивные вызовы будут сделаны при запуске f(0, 7, 13)?

2.Что вернет вызов f(0, 1000000000, 123456789)?

3.Чему равно возвращаемое значение f(0, a, b) в общем случае?
Аноним 18/04/17 Втр 16:50:54  975635
struct MyStruct{
MyStruct(){}
~MyStruct(){}
int v;
};

MyStruct a[10000000];

На ассемблерном уровне - будет ли у нас вызван конструктор миллион раз, даже если он пустой, или нет?
Аноним 18/04/17 Втр 17:06:35  975649
>>975635
Нет, у тебя инициализация v не прописана, конструктор пустой.
Аноним 18/04/17 Втр 17:08:50  975650
>>975625
1) 1, 7, 13 ; 2, 7, 13; 3, 7, 13 .... 14, 7, 13
Вроде.
Аноним 18/04/17 Втр 17:12:16  975651
>>975635
Зависит от опций компиляции. C -O2/3 скорее всего не будет.
Аноним 18/04/17 Втр 17:35:09  975665
>>975649
Понятно, что конструктор пустой и ничего не будет инициализировано. Но будут ли вызовы конструктора вообще?
Аноним 18/04/17 Втр 17:52:12  975680
>>975677
Ты правда настолько туп, что не знаешь, как сгенерировать ассемблерный листинг?
Аноним 18/04/17 Втр 18:46:56  975718
Объясните реализацию графов на с++.
Аноним 18/04/17 Втр 19:01:49  975729
>>975718
Нахуй иди, вместе с этой гнидой - >>975677
Аноним 18/04/17 Втр 19:02:53  975731
http://cpp.sh/9ks32
блядь блядь блядь блядь блядь блядь блядь блядь блядь блядь блядь блядь блядь
>>975625
1. Прочти свой код и выполни его без помощи компутера.
2. Не знаю.
3. Не знаю.
4. Иди нахуй со своей домашкой.
>>975665
Бабушка надвое сказала. Компилятор волен делать всё, что угодно, и конструкторы он может вызывать, а может и не вызывать, если видимое поведение не меняется (сторонние эффекты в конструкторе к видимому поведению не относятся). То есть, если у тебя в конструкторе только вызов какой-то функции, которая на состояние объектов (cin/cout и т.д. не в счёт) не влияет - компилятор может вобще не вызывать конструктор.
>>975718
struct node {
T payload;
vector<node*> edges;
} - если направленный. Если ненаправленный - чуть сложнее.
Аноним 18/04/17 Втр 19:06:38  975737
>>975731
>http://cpp.sh/9ks32
>bool c[2];
Хаха.
Ну вы и убогие все же.
Аноним 18/04/17 Втр 19:08:21  975739
>>975718
>http://cpp.sh/9ks32
Чёйта? Там инта в инициализации не хватает, если про это.
>>975737
Это ты в треде с базами срёшь?
Аноним 18/04/17 Втр 19:11:20  975745
>>975739
Я вездесущий и вездесрущий.
Проблемы?
Аноним 18/04/17 Втр 19:15:59  975753
>>975745
Да не, нормально всё.
Аноним 18/04/17 Втр 19:17:37  975756
>>975753
Вот и умничка.
шлепнул одобрительно по заднице
Аноним 18/04/17 Втр 19:27:34  975765
>>975739
>Там инта в инициализации не хватает, если про это.
Вот именно. На кой ляд вообще нужны эти списки, в которых можно указывать не все члены? Пердолинг такого же рода, как и дефолтные аргументы - специально нужно ранжировать аргументы по вероятности их использования.
>>975737
Есть альтернатива? Инбифо bitset.
Аноним 18/04/17 Втр 19:29:37  975767
>>975765
Он просто взял рандомную строку из твоей программы и подписал
> Хаха.
> Ну вы и убогие все же.

Нахуй на такое вестись?
Аноним 18/04/17 Втр 19:30:02  975769
>>975765
>bitset.
Если место важно кеш там и тд - то да.
Но это всё смешно в любом случае :3
Аноним 18/04/17 Втр 19:30:42  975770
>>975767
>Нахуй на такое вестись?
Потому что дебилы вроде тебя, например
Так-то.
Аноним 18/04/17 Втр 19:32:28  975773
>>975765
То есть - можно? У меня не скомпилилось.
Аноним 18/04/17 Втр 19:33:43  975777
14585553259040.webm (1188Кб, 640x360, 00:00:33)
>>975773
>У меня не скомпилилось.
Лучший тред.
Аноним 18/04/17 Втр 19:42:15  975797
>>975767
Про bitset - это тоже шутка, знаешь ли. В высокоуровневом языке использовать bitset - это охуевшим быть.
Так что ты тоже повёлся.
>>975773
В этот раз без оскорблений, в следующий раз будьте внимательнее.
http://cpp.sh/2lcb
Аноним 18/04/17 Втр 19:44:38  975800
Сказочный долбо[...].webm (306Кб, 480x288, 00:00:06)
>>975797
>с++
>высокоуровневом языке
Аноним 18/04/17 Втр 19:45:19  975801
>>975797
Понятно. Можешь сходить пожаловаться к C-богам. Мы тут только лабы первокурам решаем.
Аноним 18/04/17 Втр 19:47:47  975807
У меня есть дерево, нужно реализовать поиск по имени вершин. Но так, чтобы потом по результатам поиска была возможность еще раз провести поиск. Не могу придумать, как так передать вершину в метод рекурсивного поиска, чтобы дерево-результат не было зачищено.
Аноним 18/04/17 Втр 19:49:46  975810
>>975807
>рекурсивного
Ясно.
Аноним 18/04/17 Втр 19:50:47  975811
>>975810
Это моя идея. Да и на итог она мало влияет.
Аноним 18/04/17 Втр 19:50:47  975812
>>975807
Братишка, спроси у своих сокурсников. Никому не интересно ваши лабы решать. Кроме того, тут кроме меня и пары троллей, никого нет.
Аноним 18/04/17 Втр 19:50:52  975813
>>975807
Ни хрена не понял из твоего описания.
Аноним 18/04/17 Втр 19:51:38  975815
>>975811
>моя идея
Соболезную.
Аноним 18/04/17 Втр 19:55:35  975817
>>975812
Я прошу только помощь с алгоритмом.
>>975813
Имеется дерево, у каждой вершины есть имя. Хочется провести поиск по этим вершинам и отобрать только те, которые имеют определенное название. То есть получить новое дерево-результат. Но, возможно, из дерева результата придется еще раз выбрать подходящие уже под другой шаблон вершины.
Аноним 18/04/17 Втр 19:57:05  975819
>>975817
Так если результаты складываются в новое дерево, в чём проблема потом по нему искать?
Аноним 18/04/17 Втр 19:57:07  975820
>>975817
Поиск в глубину ищи (DFS).
Аноним 18/04/17 Втр 20:00:12  975823
>>975819
Есть у меня исходное дерево. Я закидываю его в дерево-ответ. В случае если ни одного запроса не пришло, выдано будет оно. Теперь я хочу искать по этому дереву. Но результаты будут складываться в него же. Причем хотелось бы удалить старые ссылки, но как разобрать, что результат нового поиска, а что старого?
>>975820
Это не принципиально, как по мне.
Аноним 18/04/17 Втр 20:01:22  975825
>>975820
Так, я чет задумался, что это вроде и есть это, пошел погуглил. Это и есть тот обход которым я пользуюсь.
Аноним 18/04/17 Втр 20:03:29  975829
>>975823
Зачем скидывать в это же дерево, если можно скидывать в другое?
Аноним 18/04/17 Втр 20:06:13  975834
>>975829
И каждый раз создавать новое дерево? И как это реализовать то? У меня это все в классе выполняется, где дерево-ответ является свойством объекта. Хотя возможно если завести новое дерево-буфер, перед всем шоу его очистить, туда перекинуть ответы, а потом дереву-результату присвоить дерево-буфер, то все будет хорошо. Вот так видимо сделать можно.
Аноним 18/04/17 Втр 20:16:20  975848
>>975834
> а потом дереву-результату присвоить дерево-буфер
return дерево-буфер;
никак?
Аноним 18/04/17 Втр 20:22:27  975855
>>975848
Что-то типа этого я и говорил. Хотя идея создавать дерево-буфер внутри функции поиска несколько облегчит код, спасибо.
Аноним 18/04/17 Втр 20:30:13  975860
>>975855
псевдокод https://pastebin.com/W6FWERL4
Аноним 18/04/17 Втр 20:45:13  975879
Image 3.png (6Кб, 830x187)
Спокойно себе отлаживал по шагам программу и тут вылезает пикрелейтед, что это значит и с чем связано, подскажите пожалуйста...
Аноним 18/04/17 Втр 20:47:40  975887
>>975879
Блядь, как вы все заебали сюда писать всякой хуйнёй.
Лаба не конпилируется, двач, памаги!!1
MSVS показал нипанятное акошко, двач, памаги!

Идите нахуй.
Аноним 18/04/17 Втр 20:50:00  975895
>>975879
Зашёл в бинарник - там страна ассемблера, "source not available". Обычно хватает прожать несколько раз shift-f11, если будет реагировать вообще.
Аноним 18/04/17 Втр 23:55:04  976055
>>975879
ты в глаза долбишься или куда?
тебе английским по чёрному написано, что сырцы на бинарник в дебаг метаинфе не залинкованы: открывай стек, смотри, где ты находишься (какая DLL или либа) и перекомпиливай её с PDB. либо же у тебя визуалка PDB не видит. откда такие дауны вылазят?
Аноним 19/04/17 Срд 01:21:33  976097
>>976055
Да эти макаки в студии не могут найти эти ключи.
А без студии хелло ворд не напишут.

Тру стори.
Аноним 19/04/17 Срд 01:25:23  976101
Анон, поскажи добротный бесплатный профайлер под MSVC но без использования студии (проект CMake-ом собирается).

Сейчас приходится под прыщами Valgrind-ом пользоватся, но проект требуют профилировать и в шинде (от чего я в тупике).
Аноним 19/04/17 Срд 01:27:59  976102
>>976101
CodeXL жи.
Аноним 19/04/17 Срд 01:29:51  976103
>>976102
>CodeXL
Херасе.
Завтра испробую. Спасибо.
Аноним 19/04/17 Срд 02:21:53  976115
>>976097
Сейчас набежит местный школьник и начнёт боготворить MSVS и обвинять тебя в использовании vim.
Аноним 19/04/17 Срд 03:27:54  976128
>>976101
хуя, а как ты valgrind'ом умудряешься профилировать?
Аноним 19/04/17 Срд 03:28:48  976129
>>976128
callgrind, cachegrind
Аноним 19/04/17 Срд 03:31:11  976130
>>976115
ещё один аутист: он говорит о том, что школьники не найдут нужный флаг в msvc, а ты vim впихиваешь зачем-то
Аноним 19/04/17 Срд 03:39:00  976135
>>976101
в msvc 2017 встроена поддержка cmake. импортишь и профилируешь прямо из визуалки.
второй вариант для эстетов -- попердолится и запустить сборку с cmake, но с визуальным компилятором (включив нужные флаги чтобы метаинфа была). и уже потом аттачиться к приложению и профилировать его визуалкой.
Аноним 19/04/17 Срд 09:17:09  976169
>>976115
ты меня запомнил!
Аноним 19/04/17 Срд 09:45:25  976175
ананасы, есть проект на Qt Widgets. получится его задеплоить на андроид? специфичные либы, вроде бы, не использовал, только буст чуть-чуть.
Аноним 19/04/17 Срд 10:55:24  976213
>>975635
>>975731
Вообщем нашел ответ сам.

Если твой класс/структура - POD, то конструктор вызван не будет, более того - он даже не будет сгенерирован.
Если класс не является POD, в нём есть хотя бы один член с конструктором - то вместо пустого конструктора твоего класса, будет сгенерен конструктор, который вызывает конструкторы всех мемберов.

>>975680
Вон из треда, долбоеб, не хотел тебе отвечать, потому что ты даун, но всё же покормлю. Твои кукареки и "выебоны" про ассемблерный листинг - полная хуйня. Листинг никогда не ответит на вопрос о стандарте.
Студент, тебе что, на паре препод показал как смотреть сгенеренный код и теперь выебываешься на бордах, да?
Аноним 19/04/17 Срд 11:01:54  976215
>>976175
Да, только интерфейс пойдет по пизде, инфа 100%.
Аноним 19/04/17 Срд 11:02:59  976216
>>976215
А от буста либо избавляться, либо ебаться с компиляцией.
Аноним 19/04/17 Срд 11:03:07  976217
>>976175
мона, только он может уебанско выглядеть на маленьком экране
Аноним 19/04/17 Срд 11:35:25  976235
>>976216
>либо ебаться с компиляцией.
Это в плюсовом проекте норма, а если используются хидер-онли библиотеки можно вообще взять и завендорить их себе в код, и забыть вообще.
Аноним 19/04/17 Срд 11:56:43  976246
У меня есть необходимость в функции, которая будет обходить каждый элемент структуры, а потом выполнять с каждым элементом какое-то действие. Но это действие каждый раз разное. Как такое реализовать на плюсах? Мне нужно передавать функцию в функцию?
Аноним 19/04/17 Срд 12:05:06  976252
>>976246
перегрузи std::get для каждой функции и хуярь std::apply
Аноним 19/04/17 Срд 12:08:18  976256
>>976252
*для каждой структуры. Надо проснуться.
Аноним 19/04/17 Срд 12:24:06  976264
>>976246
Нахуя, если ты можешь передать в функцию саму структуру?
Аноним 19/04/17 Срд 12:32:22  976269
>>976264
Я видимо непонятно выразился. Для обхода массива используют обычный цикл с итератором, у меня же, этот обход реализовать заметно сложнее, поэтому хочется отдельную функцию. Но как сделать так, чтобы то действие, которое при обходе массива указывается в фигурных скобках цикла, тоже передавалось в функцию обхода.
Аноним 19/04/17 Срд 13:21:04  976287
Как запилить ветвление в функции?
Аноним 19/04/17 Срд 13:52:13  976298
>>976287
Что?
Аноним 19/04/17 Срд 13:56:27  976302
>>976287
jmp
j(ne|e|nz|z|c|nc|...)
b(ne|eq|cs|cc|...)
Аноним 19/04/17 Срд 14:20:55  976315
>>976213
>Листинг никогда не ответит на вопрос о стандарте.
Цитирую твой вопрос, кусок дебила:
> На ассемблерном уровне - будет ли у нас вызван конструктор миллион раз

ни слова про стандарт.

Теперь иди на хуй.
Аноним 19/04/17 Срд 14:27:19  976319
а ведь ребята в Qt стараются, интересные вещи делают. Только рекламируют совсем хуево :(
Аноним 19/04/17 Срд 14:32:45  976323
>>976319
Родили уже QML с кривыми компонентами. Особенно пиздатая фича вышла в 5.8 (которую в 5.8.1 поправили, вроде как) - кэкирование компонентов, грузишь такой правки - оп, а их нихуя и нету, оказывается.
Аноним 19/04/17 Срд 15:16:23  976336
>>970816 (OP)
Пишу свой сервис для винды, он должен использовать .dll для работы с камерой. Пока это консольное приложение - все отлично работает, но если переделать на WinService, то будет немедленно выкидывать с Error:1053, при попытке запустить сервис. Если закоментировать методы из .dll, то сервис регистрируется нормально, но если добавить хоть что-то из нее - неудача. Может надо как-то специфично подключать .dll при написания сервиса или что? Почему все работает в консольном варианте?
Аноним 19/04/17 Срд 16:27:25  976359
1.png (13Кб, 575x338)
>>970816 (OP)
Сап, почему при использовании свитча выполнение красной скобки игнорируется? Без свитча все работает
Аноним 19/04/17 Срд 17:30:33  976383
>>976336
Уже не актуально, проблема была в правах доступа.
Аноним 19/04/17 Срд 18:18:41  976401
>>976359
>> cout
>> gets
Ты уж что-то одно выбери для начала
Аноним 19/04/17 Срд 18:30:34  976412
>>976401
Это настолько принципиально?
Аноним 19/04/17 Срд 18:34:25  976416
>>976412
> Это настолько принципиально?
нет, продолжай в том же духе. ты всё правильно делаешь
Аноним 19/04/17 Срд 18:38:02  976419
>>976319
>>976323
а ещё в 5.8 запилили oauth2 (https://doc.qt.io/qt-5/qtnetworkauth-index.html), только с ним можно делать только get запросы. для post надо выковыривать из инстанса bearer, вставлять его в заголовки ручками в network manager и только потом делать запрос
Qt Аноним 20/04/17 Чтв 01:27:28  976652
Пасаны, мне нужно для лабы рисовать один график, а при нажатии кнопки и движении мышки перемещать некоторый элемент на графике. Для этого я наследовал класс от QGraphicsView, рисую в методе update(), а в методах mousePressEvent() и mouseMoveEvent() отслеживаю мышку. Проблема в том, что если вызывать update внутри мойкласс::mouseMoveEvent, то двигается вся сцена, весь QGraphicsView. Если не вызывать, то все хорошо, только иначе картинка не меняется. Как это обойти? Кнопки, сигналы и слоты обрабатываются корректно, проблема только в mouseMoveEvent, как будто он там изменяет параметры виджета.
Аноним 20/04/17 Чтв 02:34:05  976672
>>976652
> Лабы идут на хуй
Аноним 20/04/17 Чтв 06:40:49  976704
>>976412
Ну ты для начала с языком программирования определись. Начал мешанину причем из стандартной библиотеки c и stl.
Вообще эта хуйня у тебя не должна компилироваться, потому что объявление переменных в switch-case недопустимо (если только они не ограничиваются областью видимости внутри конкретного case), например. такое можно:
switch (a) {
case 1: {
int x = 0;
printf("%d", x);

break;
}
case 2: ... ;
}

А вот так нельзя:
switch (a) {
case 1:
int x = 0;
printf("%d", x);
break;
case 2: ... ;
}
Аноним 20/04/17 Чтв 07:23:16  976713
>A: Ни один язык не идеален, но по совокупности киллер-фич C++ оставляет все остальные языки позади. Вот основные три:
>Мощь
Блядь, проиграл. Ладно если бы под этим словом понималась скорость, но она пунктом выше.
Аноним 20/04/17 Чтв 10:58:56  976769
>>976269
То ли ты хочешь сделать своб функцию обхода массива, то ли ты хочешь структуру. Охуительная история.
Напиши минимальный код, по которому видно задачу и проблему.
Аноним 20/04/17 Чтв 10:59:48  976771
>>976287
Родина дала нам if else switch case .
Аноним 20/04/17 Чтв 11:01:50  976772
>>976359
Похоже на UB выше в коде.
Аноним 20/04/17 Чтв 12:00:07  976796
>>976713

> Очередной петоно-дебил не понимает, что с прямым доступом к памяти заведомо можно реализовать любую другую фичу из любого языка
Аноним 20/04/17 Чтв 12:11:00  976801
>>976796
Тьюринг-полные у нас даже НАМы и Brainfuck-и.

Вместо мощи можно написать про метапрограммирование и SFINAE.
Аноним 20/04/17 Чтв 12:15:48  976802
>>976796
я про само слово. МОЩЬ. МОЩНЫЙ язык программирования.
Аноним 20/04/17 Чтв 12:55:32  976812
>>976796
Ну реализуй мне честный, не консервативный, GC. Интересно, как тебе тут "прямой доступ к памяти" поможет отличить указатели от данных.
Аноним 20/04/17 Чтв 12:58:39  976815
>>976796
Чтоб тебе было не скучно: GC должен быть компактифицирующий.
Аноним 20/04/17 Чтв 13:07:59  976819
>>976769
https://pastebin.com/0Z4siSd9
Что нужно сделать, чтобы каждый раз не писать этот for, а только конкретное действие?
Аноним 20/04/17 Чтв 13:15:37  976823
>>976819
Нужно объявить Tree_node инстансом тайпкласса Traversable и реализовать для него какую-нибудь функцию из Traversable, например, foldr

Ну или сделай так https://pastebin.com/nvRYJf33 и используй foreach-loop
доопредели там begin/end для const Tree&

И у тебя в Worker принимается зачем-то по значению
Аноним 20/04/17 Чтв 13:26:05  976831
>>976823
>функцию из Traversable, например, foldr
Бля, облажался. Ну ладно.
Аноним 20/04/17 Чтв 13:52:43  976839
>>970816 (OP)
Господа, помогите начинающему
Код
#include <iostream>
#include <cstring>
/ run this program using the console pauser or add your own getch, system("pause") or input loop /
int TestAr() {
char chararray[50];
printf("%s", chararray);
strcpy(chararray, "test test test");
printf("%s", chararray);
TestAr();
}
int main(int argc, char argv) {
TestAr();
return 0;
}
Среда Dev C++ Всё работает.
Как выделяется память для массива chararray[50]? Раньше я думал, что она статически выделена в функции и уже есть в экзешнике, экзешник загружается в память и память под этот массив уже выделена в функции, ещё до её вызова. Но, поебавшись с указателями пришел к выводу, что всё не так просто. Что происходит при последующем рекурсивном вызове этой функции?
Я раньше байтоебством не занимался.
Аноним 20/04/17 Чтв 14:01:10  976846
>>976839
https://godbolt.org/g/gHhu2O
Аноним 20/04/17 Чтв 14:27:49  976869
>>976846
push rbp //заталкивает в стек "это указатель на адрес базового сегмента текущего стекового кадра"
mov rbp, rsp //копирует адрес базового сегмента текущего стекового кадра в "указатель на вершину текущего стекового кадра"
sub rsp, 64 //вычитает из "указатель на вершину текущего стекового кадра" 64, т.е. указатель начинает указывать на адрес, расположенный на 64 адресных единицы ранее.
lea rax, [rbp-64] //помещает в регистр rax адрес [rbp-64], как я понял равный rsp, потому что из rsp уже вычли, а в rbp находится значение rsp до вычитания
mov rsi, rax //перемещает полученный ранее адрес в регистр смещения
mov edi, OFFSET FLAT:.LC0 //хуйня какая-то не гуглится
mov eax, 0 //затирает регистр еах нулем
call printf
Из всего вышесказанного вытекает нижеследующее: память под массив выделяется из стека каждый раз при вызове функции? Именно поэтому через некоторое время работы программа завершается с сообщением segmentation fault - стек залетает на программный код. Я правильно всё понял?
Если Я сейчас это сделаю, прост сразу интересуюсь. я сделаю динамический массив через *chararray=new char[50]; то будет расходоваться память из кучи и программа просто начнет жрать память?
Аноним 20/04/17 Чтв 14:43:13  976875
>>976846
>>976869
Точно так же съедает 3 мегабайта и выпадает в segmentation fault.
Аноним 20/04/17 Чтв 15:18:59  976886
Подскажите дурачку, как реализовать метод GetString в таком классе, что б можно было через cout нормально выводить стороку
https://pastebin.com/ej31QGGz
Аноним 20/04/17 Чтв 15:26:31  976892
>>976875
Скорее всего printf не находит терминирующего нуля.
Аноним 20/04/17 Чтв 15:27:46  976893
>>976886
Нужно не GetString реализовывать, а << перегружать для ostream и твоего класса.
Аноним 20/04/17 Чтв 15:32:46  976894
>>976886
https://www.tutorialspoint.com/cplusplus/input_output_operators_overloading.htm
Аноним 20/04/17 Чтв 15:40:01  976897
>>976893
>>976894
спасибо,

а других способов нет? просто мне нужно пока что как-то без этого реализовать
//Создайте метод GetString(), который обеспечит доступ к хранящейся строке.
//С помощью cout и метода GetString() распечатайте строку объекта str
Аноним 20/04/17 Чтв 15:41:13  976899
>>976897
cout << gno.GetString()
Аноним 20/04/17 Чтв 15:44:02  976901
>>976899

Ошибка C3867 "MyString::GetString": нестандартный синтаксис; используйте "&", чтобы создать указатель на член

я так пробовал вот что вышло, что это значит хз
Аноним 20/04/17 Чтв 15:45:11  976902
>>976901
Покажи весь код.
Аноним 20/04/17 Чтв 16:02:35  976910
14806520122160.webm (10237Кб, 1280x721, 00:01:57)
>>976892
>>976875
>>976869
>>976846
>>976839
Всё работает, выпадает потому что стек заканчивается. Когда объявляю массив через new, то завершается через 43000 рекурсивных вызовов независимо от размера массива, когда статическим массивом, то чем больше массив - тем меньше итераций, очевидно быстрее жрется стек. Исправьте, пожалуйста, если я не прав.
В микроконтроллерах использование памяти: программный код, стек и куча такое же или отличается?
Аноним 20/04/17 Чтв 16:07:47  976913
>>976823
Что такое Traversable?
>>976819
Оооотлично.

void Tree_node::apply(void( ЗВЕЗДА f)(&Tree_node)){
for(auto &node: Down){
f(Down);
}
}
.........
huyacknut(&Tree_node node){
node.payload=0xFFF;
}
.........

int main() {
Tree_node ldkjf;
......
ldkjf.apply(&huyacknut);
}
Аноним 20/04/17 Чтв 16:12:26  976917
>>976913
> Что такое Traversable?
http://hackage.haskell.org/package/base/docs/Data-Traversable.html#t:Traversable
>void Tree_node::apply
Для этого есть std::for_each. C++ не Java, тут поощряются freestanding-, а не member-функции
Аноним 20/04/17 Чтв 16:15:53  976920
>>976839
>int TestAr() {
>\tchar chararray[50];
>\tprintf("%s", chararray);
Использование неинициализированной памяти, undefined behaviour.
Компилятор вообще не обязан выделять место под chararray, так как заведомо известно, что в нём будет, и вместо этого может подставлять адрес строки из экзешника в каждый вызов printf.
>Раньше я думал, что она статически выделена в функции и уже есть в экзешнике
Выделяется на стеке на каждый вызов. Если напишешь static - будет выделяться на стеке один раз, перед вызовом main.
>Что происходит при последующем рекурсивном вызове этой функции?
Заканчивается место на стеке и хуяк.
>>976910
>когда статическим массивом, то чем больше массив - тем меньше итераций, очевидно быстрее жрется стек.
Ты путаешь static с локальной переменной (выделяется на стеке)
Аноним 20/04/17 Чтв 16:19:59  976925
>>976920
>Ты путаешь static
Я понял про что ты, но до этого еще не дошел. Я не правильно употребил термин "статическим" - здесь это значит только то, что он выделен не из динамической памяти, а объявлен заранее.
>Использование неинициализированной памяти, undefined behaviour.
Это было сделано, чтобы посмотреть, а не один ли массив будет использоваться для всех вызовов. В оконечном тесте уже убрал строку.
>Выделяется на стеке на каждый вызов. Если напишешь static - будет выделяться на стеке один раз, перед вызовом main.
И тогда все вызовы функции будут фактически оперировать с одним и тем же массивом, постоянно висящим в памяти, но видимым только из этой функции - я правильно понял?
Аноним 20/04/17 Чтв 17:03:24  976939
>>976925
>Это было сделано, чтобы посмотреть, а не один ли массив будет использоваться для всех вызовов.
Как проверить, выделяет ли компилятор память или нет:
- в int main выводишь адрес любой глобальной переменной ( %p в printf, & перед соотв. аргументом)
- делаешь фиксированное число вызовов (статично хранишь число, чтобы контроллировать глубину рекурсии)
- после достижения предельной глубины выводишь адрес той же глобальной переменной.

Потом делаешь такой же код, но в нём делаешь что-то посложнее, чем printf, чтобы компилятор подумал, что память выделять таки надо. Если разница между двумя адресами увеличилась - значит, компилятор экономит память в первом случае.
>И тогда все вызовы функции будут фактически оперировать с одним и тем же массивом, постоянно висящим в памяти, но видимым только из этой функции - я правильно понял?
Да.
Аноним 20/04/17 Чтв 17:08:14  976942
>>976902
да я уже разобрался...
идиотская была ошибка - забыл () перед вызовом функции
Аноним 20/04/17 Чтв 17:27:51  976953
Плюсач, помоги разобраться с наследованием. Я запилил себе класс, полностью его описал, все хорошо. Потом я создал еще один класс и наследовал его от первого public, чтобы несколько функций переопределить. Проблема в том, что я не могу даже конструктор вызвать, так как все попытки что-то изменить помечаются ошибкой, что это член первого класса и он приватный. Что пошло не так?
Аноним 20/04/17 Чтв 18:17:25  976979
http://cpp.sh/3u7b6
Ну и как мне написать инициализацию массива-члена? Голову сломал.

>>976953
Если тебе нужен конструктор из базового класса, он должен быть либо протектед, либо публик. Если это не так, исправь это.
Аноним 20/04/17 Чтв 18:45:18  976993
Я вот чет не могу смекнуть,
когда пишут:
Создайте глобальную функцию
Хуй Hui(Хуй, Хуй);
которая принимает два объекта класса Хуйпо значению и
возвращает объект класса Хуй,

как её в итоге в мейне вызывать?
так ?
Хуй h;
h.Hui(...); // но какой тгда тут смысл, надо было тогда через this писать

или так

h = Hui(...); // но тогда ошибка

Поясните кому не лень< плиз.
Аноним 20/04/17 Чтв 18:57:15  976997
>>976979
Проще взять std::array
Аноним 20/04/17 Чтв 19:19:32  977011
Безымянный.png (61Кб, 791x623)
С помощью какого алгоритма можно это реализовать?
Аноним 20/04/17 Чтв 19:20:17  977012
segmentation fault
gdb говорит следующее
https://clbin.com/N3rzrw.png
Раньше все работало, но я в этом месте вроде как map, заменил на vector. Вот весь код
User.cpp https://pastebin.com/nyuwaQay
Tree.h https://pastebin.com/qR2bpW8s
Server.cpp https://pastebin.com/Cc2X6QUh в нем, в 37 строке и происходит что-то непонятное
Объявление структуры Tree_node происходит в ашнике, описание методов класса в файле класса, остальных функций в Server.cpp, там же лежит мейн.
Аноним 20/04/17 Чтв 19:49:32  977018
>>976997
Канеш проще, только я хочу сделать наиболее простым путём. Какого ляда C++ считает, что список инициализаций - это список присваиваний? Бесит.
Аноним 20/04/17 Чтв 19:58:12  977021
>>977012
Прошу прощения. В проблемной строке не
Top_node->Down[Top_node -> Down.size()] = &Construction_tree(Simbol_, file);
А
Top_node->Down[Top_node -> Down.size()] = Construction_tree(Simbol_, file);
Нет амперсанда. Это я не ту версию показал, выхлоп ждб такой
https://clbin.com/p0fXIU.png
Аноним 20/04/17 Чтв 21:13:44  977045
>>977011
Жадным можно.
Аноним 21/04/17 Птн 00:38:50  977125
>>977021
>>977012
Нашел ошибку, оказывается растягивать вектор можно только так array1.insert(array1.end(), 4);
Аноним 21/04/17 Птн 07:35:29  977176
>>977125
resize еще
Аноним 21/04/17 Птн 16:26:40  977332
>>977125
>растягивать вектор можно только
Не только.
Аноним 21/04/17 Птн 18:12:16  977384
Ананасы, нужна какая-нибудь маленькая библиотечка, могущая вычистять интегралы. Не подскажите такую?
Аноним 21/04/17 Птн 18:35:36  977404
Короче, тут намедни прочитал книг 6 по паттернам, а мен все мало, блять. Есть какие-нибудь годные еще, кроме GoF, POSA и Software Architecture in Practise?
Аноним 21/04/17 Птн 18:57:42  977423
синтаксическая ошибка во встроенном коде на языке ассемблера в "код операции"; обнаружено "newline"

эта херня появилась после того, как я сделал виртуальным 1 из методов класса, что это вообще?
Аноним 21/04/17 Птн 19:01:04  977424
>>977423
хотя это между собой не связано..
Аноним 21/04/17 Птн 19:40:38  977435
>>977404
>прочитал книг 6 по паттернам
> GoF
Как ты не заснул? Я засыпаю на второй странице чтения этого.
Аноним 21/04/17 Птн 19:51:33  977439
>>977404
> книг 6 по паттернам
Ебать дебил.
Аноним 21/04/17 Птн 20:26:30  977451
Сап!
Я программист уже 4 года профессионально.
Программирую на руби. На досуге увлекаюсь Erlang, Clojure, C/C++. На руби уже надело, в основном рутина, ничего интересного. Хочется думать и нести радость людям написав какой нибудь там автопилот например.
Подскажи, требуются ли в рашке программисты на C/C++ или это уже утопия и все дрочат на go/ruby/php ?
Аноним 21/04/17 Птн 20:53:44  977460
Безымянный2.png (101Кб, 798x931)
А какой/какие алгоритмы применить здесь?
Аноним 21/04/17 Птн 21:44:39  977490
>>977176
>>977332
Я имею в виду, что нельзя вектор длины 7 Vector1[7]
Аноним 21/04/17 Птн 21:58:17  977496
>>977384
Аналитически или численно? Фгугл.
Аноним 21/04/17 Птн 22:23:52  977505
>>977011
Точнее: перебором с O(n). Если дашь ссылку на судью, я тебе сбацаю.
>>977460
Симулируй работу парикмахера и прихода/ухода всех этих идиотов. Натурально: берёшь и релизовываешь конечный автомат (состояние содержит текущее время, очередь на это время с фасонами) по условию задачи, больше ничего не надо.
Аноним 21/04/17 Птн 22:44:28  977510
>>977011
Ещё точнее: можно решить квадратное уравнение двоичным поиском, будет O(log n).
Аноним 21/04/17 Птн 23:51:37  977530
Товарищи, как MinGW заставить понимать юникод в имени файла, а именно:
ifstream file(_name, ios::binary);
компилятор компиляет только когда _name - char, а мне нужно, чтобы WCHAR (wchar_t, как я понял это одно и тоже) неужели у красноглазых нет юникода в путях?
Нашел на стековерфлов как там кто-то что-то скачал и собрал и вообще руками всё конвертирует в чар и доволен. Но я не верю, что там нет готового.
Аноним 21/04/17 Птн 23:52:57  977532
>>977530
При чём тут красноглазые, если ты на сперме.
Аноним 21/04/17 Птн 23:57:04  977537
>>977532
MinGW разве начало свое берет не на линуксах?
Аноним 21/04/17 Птн 23:59:04  977541
>>977537
Это, как следует из названия, минимальный порт GNU-тулз на Windows. Оно не стремится имитировать POSIX-окружения. Для последнего есть Cygwin. И WSL.
Аноним 22/04/17 Суб 00:03:31  977542
>>977530
Короче, если ты так хочешь utf8 везде, посмотри в сторону nowide. http://cppcms.com/files/nowide/html/index.html
Оно есть в отдельной от boost форме.
Аноним 22/04/17 Суб 01:39:14  977568
Хочу написать свой REST API на С++. Смотрю на https://github.com/stefanocasazza/ULib
и нихуя не понимаю.

Анон, покажи как писать Web сервисы на крестах в продашоне
Аноним 22/04/17 Суб 01:40:20  977569
>>977568
Хипсторы в соседнем треде.
Аноним 22/04/17 Суб 01:40:48  977570
>>977011
Поступление в ШАД?
Аноним 22/04/17 Суб 01:41:16  977571
>>977569
В смысле? Зашквар писать веб на крестах?
Аноним 22/04/17 Суб 01:42:28  977572
>>977571
Хочу нагнуть golang-ёбов для этого мне нужна сила плюс и мудрость двоща
Аноним 22/04/17 Суб 02:02:27  977578
Почему небольшой проектик (несколько .cpp и .hpp) в VS конпелируется и запускается, а g++ выдает по main.cpp: undefined reference to %функция_нейм% и отказывается конпелировать ?
Аноним 22/04/17 Суб 02:03:21  977579
>>977578
too fat
Аноним 22/04/17 Суб 06:05:30  977597
Можно на плюсах и Qt собрать хелловорд весом 11кб или меньше?
Аноним 22/04/17 Суб 10:47:33  977629
Error C2400 inline assembler syntax error in 'opcode'; found 'newline'

С чем связана это сраная ошибка? Нигде нормальной инфы нет.
Аноним 22/04/17 Суб 12:30:05  977662
>>977629
Это C++, а не inline assembler тред.
Аноним 22/04/17 Суб 13:05:01  977693
>>977662
>inline assembler
Ну а я и писал на c++, и вдруг мне в VS высветилась такая ошибка
Аноним 22/04/17 Суб 13:07:31  977695
>>977629
Компилятор какой?
Аноним 22/04/17 Суб 13:23:31  977708
>>977505
Напиши свою почту gmail.
Аноним 22/04/17 Суб 13:27:03  977712
>>977510
А вот здесь поподробнее.
Аноним 22/04/17 Суб 13:33:11  977717
>>977695
VS 2015
Аноним 22/04/17 Суб 13:35:24  977718
m3ep7X7aqIU.jpg (6Кб, 228x221)
>>977629
>syntax error
Аноним 22/04/17 Суб 13:39:43  977722
>>977712
Хуйню он сморозил, вот тебе подробности.
Аноним 22/04/17 Суб 15:06:52  977771
>>977011
Я придумал за O(m logn) решение, где m - количество выговоров. Просто эмуляция начальника на дереве поиска. Можно парой эвристик ускорить, но в общем случае без ограничений на ответ будет медленно работать.
ещё-один-анон
Аноним 22/04/17 Суб 15:22:59  977777
Почему нельзя определить массив так так:
Animal zoo[]={Animal(),Cat(),Dog()}
А надо так:
Animal* zoo[]={new Animal(),new Cat(),new Dog()}
Аноним 22/04/17 Суб 15:44:50  977799
>>977777
Это разные объекты, они занимают разное количество памяти.
У тебя, например, базовый объект 8 байт весит, а наследникам ещё int добавили, стало 12.
Выделение памяти под массивы происходит "под линейку" тебе надо 100 объектов Animal, она тебе и выделила эти 800 байт. Понятно, что запихнуть в i слот Dog или Cat не получится.
У указателей же постоянный размер 4-8 байт в зависимости от компилятора. Во втором случае ты выделяешь память на 3 указателя, те уже в свою очередь ссылаются на реальную память, а там уже объекты могут сколько хочешь весить.
Аноним 22/04/17 Суб 16:04:48  977820
>>977777
Потому что это не Java
Аноним 22/04/17 Суб 16:22:56  977826
https://pastebin.com/LuFW7QDe
Вот две функции. Считывание дерева из файла и его удаление. Почему-то команда delete Top_node, где Top_node это указатель созданный через new в другой функции, на вершину не хочет работать и падает с ошибкой памяти. Не знаю, в чем ошибка.
Аноним 22/04/17 Суб 16:25:04  977827
>>977826
valgrind
Аноним 22/04/17 Суб 16:52:12  977836
>>977826
Без рабочего проекта тебе никто не поможет.
Аноним 22/04/17 Суб 16:53:00  977837
>>977836
В смысле хотите видеть весь код?
Аноним 22/04/17 Суб 16:57:18  977838
>>977837
Да, нужна какая-то программа, на которой это всё падает. И файлы с примерами, если есть.
Тут магов нет, никто с первого взгляда рандомный код не умеет по полочкам расставлять.
Аноним 22/04/17 Суб 17:06:58  977839
>>977837
И там должен быть файл с лицензией, точнее, с уведомлением, что ты передаёшь код в публичное достояние.
Аноним 22/04/17 Суб 17:14:04  977844
Вкатывается нюфаг, изучающий ооп.
Есть класс, допустим, classType. В нем, кроме всего прочего, есть конструктор копирования.
В maine есть объекты classType a,b. Где-то задаются параметры объекта a, после чего я пишу b=a. Почему в этом случае конструктор копирования не вызывается, а при classType c=a вызывается?
Аноним 22/04/17 Суб 17:27:47  977854
>>977844
http://stackoverflow.com/questions/5368258/the-copy-constructor-and-assignment-operator
Аноним 22/04/17 Суб 17:36:49  977857
>>977844
>Вкатывается нюфаг, изучающий ооп.
Другого места не нашёл, куда вкатиться? Почему этот тред?
Аноним 22/04/17 Суб 17:48:42  977861
Весь остальной код вроде как работает, проблема именно в функции очитстки.
https://pastebin.com/3jXs6fKc вот мейн, проблемная строчка там (Server.cpp)
https://pastebin.com/rW8Tswsi вот ашник, там и объявляется структура Tree_node (Tree.h)
чтобы все работало нужен еще этот файл, который стоить назвать User.cpp https://pastebin.com/9fMg1eKP
https://pastebin.com/6Ttddnb4 вот проблемный файл. Назвать нужно Base.txt
Вся беда в процедуре удаления дерева, которое создавалось конструкцией нью. В этой функции есть отладочный вывод, который показывает, что вроде как ни одного делита не выполняется, но функция завершается несколько раз, кроме самого последнего. Как такое возмжно я не понимаю
Аноним 22/04/17 Суб 17:50:23  977863
>>977838
>>977839
>>977861
Про лицензию забыл. Но вы можете пользоваться так, чтобы под GNU подходило, обязательно 3 версии.
Аноним 22/04/17 Суб 18:25:41  977879
143895409419743[...].png (438Кб, 811x627)
>>977861
int main()
{
Tree_node Top;
Cleaner(&Top)
}

void Cleaner (Tree_node * Top_node)
{
delete Top_node;
}
Аноним 22/04/17 Суб 18:29:33  977881
>>977541
>Оно не стремится имитировать POSIX-окружения. Для последнего есть Cygwin. И WSL.
Ты ебанутый, блять? При чем тут имитация и прочая поебень, речь идет об обычном юникоде в имени файла.
>>977542
Большое спасибо, то, что доктор прописал.
Аноним 22/04/17 Суб 18:36:55  977891
>>977879
>>977861
Бля, он прав. Ты пытаешься статическую память снести.
Аноним 22/04/17 Суб 18:37:14  977892
>>977879
О, вот и ответ. Спасибо тебе, анон, пускай ты и пидор.
Кстати вопрос. Я вот получил указатель на память. Почему я не могу удалить память по указателю?
Аноним 22/04/17 Суб 18:38:21  977893
143895409419743[...].png (438Кб, 811x627)
>>977891
> статическую память
Аноним 22/04/17 Суб 18:38:57  977894
>>977893
Ну что не так?
Аноним 22/04/17 Суб 18:40:41  977896
Надо в шапку добавить что все пидоры с проблемами в new/delete пиздовали в ньюфаг-тред.
Аноним 22/04/17 Суб 18:42:32  977899
>>977893
А ну да. Мне из функции возвращается указатель, а я из него достаю объект и помещаю в статическую память. Все, понял, осознал.
>>977894
Это, кстати, не я.
>>977896
Но сегодня вы опоздали.
Аноним 22/04/17 Суб 18:55:44  977905
>>977899
>в статическую память
В хуическую.
Аноним 22/04/17 Суб 19:09:48  977921
>>977905
А как она называется?
Аноним 22/04/17 Суб 19:11:08  977923
>>977921
Хуическая.
Аноним 22/04/17 Суб 19:13:12  977926
>>977921
Можно, наверное, называть автоматической. Не совсем корректно, но сойдёт.
Аноним 22/04/17 Суб 19:19:28  977936
>>970816 (OP)
Вкину годный линк для всех. Обсоски ничего не могу ответить про продакшн программирование на крсетах
https://github.com/fffaraz/awesome-cpp

Бляди бля
Аноним 22/04/17 Суб 19:57:55  977966
>>977771
Сможешь реализовать?
Аноним 22/04/17 Суб 20:30:48  977979
>>977966
Смогу, но не буду.
Аноним 22/04/17 Суб 20:52:31  977982
>>977979
Жаль.
Аноним 22/04/17 Суб 22:28:04  978039
Немного оффтоп, но думаю тут есть люди, которые могут ответить. Вопрос в контексте windows, хотя за информацию по unix/линупс тоже буду благодарен.
Вот допустим, я написал .dll, функции из которого локальные и статические переменные точно свои для каждого процесса я хочу использовать в нескольких работающих одновременно процессах (допустим, их очень много). В таком случае, если несколько процессов, использующих эту .dll работают одновременно, то для каждого процесса в его виртуальную память (далее ВП) загружается своя копия .dll, и при создании каждого процесса из исполняемого файла загрузчик вписывает адреса вызова функций в секцию с таблицей импорта? Или загрузчик достаточно умён, чтобы использовать единожды загруженную .dll между несколькими процессами? Или такое верно только для системных .dll, а для пользовательских - только MMF в отдельном гигабайте ВП?
Аноним 22/04/17 Суб 22:43:13  978053
>>978039
Главный вопрос - зачем вам понадобилось это знание?
Аноним 22/04/17 Суб 22:48:35  978058
>>978053
Пишу курсовую. Один из второстепенных аспектов - цикл жизни процесса.
Аноним 22/04/17 Суб 22:50:47  978060
>>977708
yobberowich@gmail.com
Аноним 22/04/17 Суб 22:57:01  978065
>>977712
Там хитро. Решение основывается на поиске минимального значения, при котором программистов можно накачать. Накачку следует рассматривать отдельно - как косвенную и как прямую. Для каждого числа выговоров есть число программистов, которое будет накачано только косвенно. Необходимое число прямых накачек ненакачанных программистов вычисляется, и если оно больше числа пассивных накачек - перебор продолжается.

Перебор можно выполнять не линейно, а двоичным поиском, а если всё свести в одну формулу, можно упростить вычисление (но это непринципиально). Можно было бы решить уравнение, но нужно решать его либо в даблах (и тогда хрен знает, правильно или нет), либо округление вверх как-то учитывать. Так что двоичный перебор проще.
Аноним 22/04/17 Суб 23:03:12  978068
>>978058
Одна и та же, а потом механизм copy-on-write.
Аноним 22/04/17 Суб 23:25:45  978083
>>978065
Всё бы ничего, но идея, которая стоит за решением, не понятна.
Например,
>и если оно больше числа пассивных накачек - перебор продолжается
откуда следует это?
И вот если я оценю минимальное и максимальное количество выговоров какой-то эвристикой, то как делать перебор между этими значениями? Выходит уравнение с 200к неизвестными, не совсем ложится под понятие перебора.
Аноним 22/04/17 Суб 23:37:08  978085
>>978083
>откуда следует это?
Могу доказать теорему о том, что если выполняется упомянутое условие (число необходимых прямых меньше= числа пассивных), то оно выполняется для всех больших чисел.
>И вот если я оценю минимальное и максимальное количество выговоров какой-то эвристикой
Минимальное - это 1. Максимальное - это тупо 200000, для двоичного поиска это не важно, число итераций - 18 (262144=2^18).
>как делать перебор между этими значениями?
Двоичный поиск, блет. Значения отсортированы по критерию выполнимости искомого условия - для всех значений начиная с некоторого оно выполняется.

Пиши на почту, если хочешь.
Аноним 22/04/17 Суб 23:41:01  978087
>>977570
Очень врядли.
https://yandexdataschool.ru/admission
Прошло сильно больше 5 часов.
Аноним 22/04/17 Суб 23:57:13  978093
https://contest.yandex.ru/contest/4317/enter/ - и вообще интерфейс другой.
Аноним 23/04/17 Вск 00:02:54  978096
>>978085
Не понял. Я, кстати, другой анон. У меня жопа не горит задачу решить, просто хочу понять.

>Могу доказать теорему о том, что если выполняется упомянутое условие (число необходимых прямых меньше= числа пассивных), то оно выполняется для всех больших чисел.
Я воспринял эту строку как "Я могу доказать теорему, что если это условие выполняется, то оно выполняется"

>Минимальное - это 1. Максимальное - это тупо 200000, для двоичного поиска это не важно, число итераций - 18 (262144=2^18).
Ок. Это я понял.

>Двоичный поиск, блет. Значения отсортированы по критерию выполнимости искомого условия - для всех значений начиная с некоторого оно выполняется.
Вот это я не понял. Пусть я отсортирую всех программистов по убыванию производительности. Это ведь имелось в виду? Если нет, то прошу пояснить. И у меня на текущей итерации n выговоров. Что дальше происходит?
Аноним 23/04/17 Вск 00:10:29  978103
Пасаны, как по кашруту помечать функции как deprecated и obsolete? Я тут решил угореть по качественному коду, комментирую функции в хэдерах, пишу по гайдлайнам
Аноним 23/04/17 Вск 00:12:25  978105
>>978096
>Я воспринял эту строку как "Я могу доказать теорему, что если это условие выполняется, то оно выполняется"
Если условие выполняется для X, то оно выполняется для любого числа больше X.
> И у меня на текущей итерации n выговоров. Что дальше происходит?
n выговоров - это пассивные выговоры. Что ты делаешь дальше:
- число ненакачанных = число - n*y
- у ненакачанных одинаковый уровень накачки. Тебе нужно накачать оставшихся прямыми выговорами с эффектом y-x
- как накачать оставшихся только прямыми выговорами (т.е. без косвенной части, мы её исключили) - поймёшь сам, если нарисуешь лестницу.
- если ты не можешь накачать оставшихся с помощью n выговоров, поиск продолжается.

Поиск начинаешь со 100000. Если накачка взоможна, перемещаешься на половину диапазона влево (т.е. можно лучше). Если невозможна - на половину диапазона вправо. Это двоичный поиск.

>>978093
Чот я ипал.
>/temp/compiling/source.c:1:20: fatal error: iostream: No such file or directory
>#include <iostream>
> ^
>compilation terminated.
Что это за C++, если в нём iostream нету?
Аноним 23/04/17 Вск 00:20:29  978111
>>978085
Минимальное - это 1. Максимальное - это тупо 200000, для двоичного поиска это не важно, число итераций - 18 (262144=2^18).
Хотя, эту часть я тоже не понял. Я думал, что перебор по ответу, но это перебор по программистам, по которым кричали/не кричали, видимо.

>>978105
Ну вот тут основной вопрос, как перебирать. Потому что сам по себе перебор в лоб - это в худшем случае количество итераций в районе 10^9. То есть разгонять тех, кто больше всех нуждается по очереди. Например, берём программиста, которому нужно со скоростью а (максимальная среди всех) работать, накачиваем его на a - (x-y), возвращаем обратно в очередь с приоритетом, берём следующего с максимумом. И пока следующий прогер не будет пассивными разгонами уходить в минус.

>Что это за C++, если в нём iostream нету?
Видимо, это C.
Аноним 23/04/17 Вск 00:25:10  978114
>>976812
Братан, Аппель (или ещё кокой-то петушок) больше 30 лет назад придумал как это делоть. Зогугли.
>>976815
А это к проблемам самого языка и невозможности реализации чего-то как относится? Сделой если не лох?
Аноним 23/04/17 Вск 00:38:58  978124
>>978111
> Я думал, что перебор по ответу,
Ты можешь накачать всех программистов за 200000 выговоров: y>1. Можно точнее, но не нужно.
>Ну вот тут основной вопрос, как перебирать.
Двоичный, мать его в сраку, поиск, по отсортированному, якорь им в ебало, значениям числа выговоров. Я уже всё разжевал, осталось только головой подумать.
Аноним 23/04/17 Вск 00:48:05  978127
>>978124
Ё, там не 200к выговоров. На каждого чувака может быть больше одного. Т.к. нам нужно накачивать на числа до 10^9, то и число выговоров может быть близко к этому числу. Ну запилить на 100кк выговоров пример можно не напрягаясь. А значит, что по способу выше я не смогу позволить себе даже одну итерацию сделать.
Всё таки это олимпиадная задача, а не энтерпрайз параша, которая нас всех ждёт. Можно было бы хотя бы попытаться объяснить.
Аноним 23/04/17 Вск 01:09:32  978141
>>978127
>На каждого чувака может быть больше одного.
Количество чуваков < 200000, y>=1. То, что x и y могут быть большими - не важно ВООБЩЕ.
Даже если бы оно было бы 10^9 - это 30 итераций вместо 18, в каждой из которых я делаю фиксированное число вычислений.
>Всё таки это олимпиадная задача, а не энтерпрайз параша, которая нас всех ждёт. Можно было бы хотя бы попытаться объяснить.
Залупанцу надо задачки преподу сдать, и он этот тред читает. Я и так же объяснил, как мог, чтобы и вы тоже подумали.

Ещё раз. Делишь влияние выговоров на косвенное влияние и на прямое. В каждом наборе выговоров есть некоторое число заведомо накачанных дебилов - они находятся в начале.

- Ты перебираешь число косвенных выговоров (т.е. выговаривают всех, кроме тех, кто в начале и сам будет въёбывать) - n.
- число тех, кого не накачали n косвенных выговоров = число дебилов - n*y (элементарно)
- у ненакачанных одинаковый уровень косвенной накачки, поэтому ты вычитаешь его и ищешь число необходимых прямых накачек эффектом y-x
- как накачать оставшихся только прямыми выговорами (т.е. без косвенной части, мы её исключили) - поймёшь сам, если нарисуешь лестницу от 1 до числа ненакачанных
- двоичный поиск продолжается с учётом того, можешь накачать оставшихся с помощью n выговоров (т.е. прямых накачек нужно больше, чем косвенных) или нет.

Разумеется, я могу разжевать ещё сильнее, но это уже неинтересно.
Аноним 23/04/17 Вск 01:10:38  978143
>>978141
> эффектом y-x
Наоборот: x-y.
Аноним 23/04/17 Вск 01:41:30  978159
Вопрос.
Что есть за тип T[][] ?
Это T или T* ?
Аноним 23/04/17 Вск 01:41:51  978160
>>978159
Или вообще T?
Аноним 23/04/17 Вск 01:42:14  978161
>>977011
Мне кажется, тут нужон симплекс метод.
Аноним 23/04/17 Вск 01:44:08  978164
>>978159
>Что есть за тип T[][] ?
Ничего не есть.
Аноним 23/04/17 Вск 01:44:20  978165
>>978161
А вообще, это вроде примитивный матан с системой линейных уравнений.
Аноним 23/04/17 Вск 01:52:10  978168
>>978165
В общем то это и есть симплекс метод. Главное правильно определиться с тем что есть что.
Аноним 23/04/17 Вск 01:59:55  978171
>>978164
What is it?
Nothing is...
Аноним 23/04/17 Вск 02:01:34  978172
>>978159
>Что есть за тип T[][] ?

Это ни хрена не тип. T[][6] - это тип. T[][6][5] - это тип. T[] - это тип. *T[] - это тип. А T[][] - это не тип.
Аноним 23/04/17 Вск 02:02:33  978173
Dear C++ programers..
What language are you use for comments in your programs?
Аноним 23/04/17 Вск 02:03:10  978174
>>978172
А что такое T[][] ?
Такое объявление недопутимо разве?
Аноним 23/04/17 Вск 02:03:47  978175
>>978173
do you use
в крайнем случае are you using
Аноним 23/04/17 Вск 02:06:36  978176
>>978175
Yes. You are right.
And you forgot to check the missed article "a" error before the "language" word.
At so, what a language.
Аноним 23/04/17 Вск 02:10:50  978178
Hey....
Where are you all?
Аноним 23/04/17 Вск 02:16:08  978179
>>978176
нет, what language. артикль "a" лишний.
at so - это ващпе пушка. не стоит переводить комбинации частиц и местоимений с русского на английский дословно. с высокой вероятностью результат будет бессмысленный.
Аноним 23/04/17 Вск 02:19:21  978181
>>978179
В некоторых фильмах слышал, говорили At so... как аналог well, типа "И так.." в контексте продолжения мысли.
Может конечно и померещелось.
Аноним 23/04/17 Вск 02:20:00  978182
>>978174
Дык а я о чём.
Аноним 23/04/17 Вск 02:20:56  978183
>>978173 >>978176
I am using fluent english to comment my code.
Аноним 23/04/17 Вск 02:22:48  978184
>>978182
Понятно.
У меня ебанутая задача из плюсового приложения вызывать сишные функции одной билиотеки, причем сишная библиотека дохуя сложная в плане своих типов... (Вложенные структуры, указатели на массивы и прочее.)
Заебался я уже этот врапер делать, но свою библиотеку писать - сроки проебать.
Аноним 23/04/17 Вск 02:24:05  978185
>>978183
не самое уместное употребление fluent. при использовании fluent + %language% обычно речь идёт о том, что кто то говорит или пишет на чистом %имяязыка%, но не использует чистый %имяязыка% для %цель%.
Аноним 23/04/17 Вск 02:25:20  978186
>>978183
We don't.
I work in a Russian company..
Early we used broken English but now we decided to use pure Russian.
Аноним 23/04/17 Вск 02:27:36  978187
>>978185
Это прилогательное означает "свободно владеющий", "свбодный", и обычно сочетается только с понятием уровня владения чего либо в таком контексте.

Даже по русски криво говорить "Я использую беглый английский в своих комментах".
Аноним 23/04/17 Вск 02:27:40  978188
>>978186
>Early
at first/initially/originally
Аноним 23/04/17 Вск 02:28:33  978189
>>978188
Но я хотел сказать - ранее..
Не "Сначала", не "В начале", не "Изначально", а именно ранее..
Аноним 23/04/17 Вск 02:29:22  978190
>>978187
ну несмотря на некорректность его мысль бы поняли.
>>978189
back then/[long|some] time ago
Аноним 23/04/17 Вск 02:30:04  978191
>>978188
Но согласен.
Это причастие "Рано", а ранее - earlier.
Аноним 23/04/17 Вск 02:30:13  978192
>>978187
Таки да.
Аноним 23/04/17 Вск 02:31:29  978193
>>978191
>причастие
наречие.
Аноним 23/04/17 Вск 02:32:01  978194
>>978188
Какая часть "broken english" тебе непонятна? :3
>>978190
>ну несмотря на некорректность его мысль бы поняли.
Ну уж нет. Корректность - это хорошо, даже если всем похуй.
Аноним 23/04/17 Вск 02:32:18  978195
Нужно больше английской практики.
Где бы только ее взять.

И так, уже нашел человек пять англоговорящих из разных стран, но поговорить из-за часовых поясов и работы обычно нормально не выходит.
Аноним 23/04/17 Вск 02:34:20  978196
>>978194
У меня еще норм.
Я хоть о спряжении глагола забочусь.

Некоторые у нас вообще писали.
I want look result in next week.
Аноним 23/04/17 Вск 02:35:16  978197
>>978196
Вроде и понятно самим рускоговорящим, но когда так пишешь иностанцем, зачастую они могут тебя реально не понять, и следует серия переспросов - когда, что именно и зачем.
Аноним 23/04/17 Вск 02:43:19  978200
Скушно.
Аноним 23/04/17 Вск 06:01:18  978221
>>978200
Спать надо просто.
Аноним 23/04/17 Вск 10:04:19  978238
>>978141
Я понял, как решать. Не понял только, как тот хитрый критерий применять, но остального достаточно для решения задачи.
Аноним 23/04/17 Вск 10:10:12  978239
>>978141
А не, всио понял.
Аноним 23/04/17 Вск 12:12:46  978270
есть два класса
один из них потомок другого и используя указатели каждого из них динамически выделяется массив элементов потомка
нужно вызвать метод, выводящий строку на экран,
но проблема в первом массиве, где указатель базового типа, а элементы потомка, там только для первого элемента создается объект типа потомка, немогу понять почему так и как это разрулить
https://pastebin.com/30g8Y1Pq
Аноним 23/04/17 Вск 12:42:45  978284
>>978270
http://ideone.com/NojQrn

Что тут не так? Вроде всё, как задумано.
В общем случае, так нельзя делать. Это всё работает только потому, что объекты одинакового размера.
Аноним 23/04/17 Вск 12:53:55  978294
>>978284
у меня на этой строчке
pShapes.WhereAmI();
после второй итерации цикла выходит такое:
почему то в массиве pShapes только в первом элементе создается объект типа Rect и я не могу понять почему

Exception thrown: read access violation.

pShapes-> was nullptr.

If there is a handler for this exception, the program may be safely continued.
Аноним 23/04/17 Вск 12:55:41  978296
>>978294
Там всё нормально создаётся. Выведи в консоль sizeof(Shape) и sizeof(Rect). После этого хорошенько подумой, что ты сделал не так. После этого спрашивай дальше.
Аноним 23/04/17 Вск 13:08:25  978306
Image 1.png (53Кб, 1245x554)
>>978296
вот с твоим кодом, что получается,
а в pShapes[0] есть объек Rect
а в pShapes[1] уже нет (я хз почему)
и поскольку это вызов по объекту, то вызывается метод для объекта Rect и вылезает ошибка, потому что объекта нету

насчет sizeof, ну да, я понимаю, что дочерний класс занимает 24 байта, а не 8, как базовый, но это ж мне ничего не дает, я ведь просто вызываю метод, выводящий строку на экран, я не манипулирую никак с данными..
Аноним 23/04/17 Вск 13:10:29  978310
>>978306
А когда ты к элементам массива обращаешься, что ты делаешь?
Аноним 23/04/17 Вск 13:19:20  978313
>>978310
ну окей, это образщение к данным
но в данном конкретном случае мне не важно сколько памяти занимает объект массива
проблема-то не в этом
ведь у меня указатель базового класса на динамически выделенный массив элементов дочернего
я ж пишу
Shape* pShapes = new Rect[10]
дайте мне десять элементов типа рект и направьте на первый элемент указатель типа базового класса
Аноним 23/04/17 Вск 13:23:37  978319
Подскажите плиз
если у меня есть базовый класс A и дочерний B
как можно проинициализировать

B b();
A p = &b;//по идее так можно делать, если A базовый для B, но

знаю, что можно так,
A p = new B;

но мне нужно, чтобы именно для объекта b направить этот указатель, что бы потом через него вызывать виртуальный метод
когда я пишу так:
A p = &b;
мне пишут: a value of type B()()" cannot be used to initialize entity of type "A*"
почему, если это указатель на базовый для объекта b тип???
Аноним 23/04/17 Вск 13:27:24  978324
>>978313
Ну теперь уже совсем для нулёвых объясняю.
pShapes <=> (pShapes + 8 i)
pRects <=> (pRects + 24 i)

>>978319
Так нельзя делать. С чего ты взял, что так можно?
Аноним 23/04/17 Вск 13:27:57  978325
>>970816 (OP)
У меня есть класс clas_name, при объявлении которого нужно указывать аргументы.
clas_name object(4, 4, 1, 8);//например
И мне надо сделать массив таких объектов с одинаковыми аргументами, как?
Аноним 23/04/17 Вск 13:28:29  978326
>>978324
Суко, звёздочки.

pShapes <=> \(pShapes + 8\ i)
pRects <=> \(pRects + 24\ i)
Аноним 23/04/17 Вск 13:28:47  978327
>>978326
Бля, ну я пытался. Абу пидор.
Аноним 23/04/17 Вск 13:30:16  978331
>>978324
x - это тип звёздочки
pShapes <=> x(pShapes + 8 x i)
pRects <=> x(pRects + 24 x i)

Аноним 23/04/17 Вск 13:39:48  978341
>>978325
std::vector<Foo> thousand_foos(1000, Foo(42));
Аноним 23/04/17 Вск 13:42:21  978344
Комрады, вопрос -
я вообще С# + JS мидл под АSP, вкатился вайти в 27, вот уже 3 года работаю, вышел на норм зп. и т.д., а ща перебрался на на еще более коровые задачи, и удаляюсь от веба.
Но все это время по ночам под одеялкой кодал на сях под STM-ки прошивочки для всякой хоббийной и не очень поеботы, даже заработать успел малех. Ща понимаю что Шарпы оче ограничивают вендой, а мои хоббийные проектики требуют реализации уже во всяких эмбедед вариантах под линупсами. Какие-то простые вещи делал на сях в консольке, но уже тесновато. В общем, ща взялся учить плюсы, но одолевает сомнение небольше -
по факту мне нужно как низкоуровневый контроль регистров/ножек железяки, так и некоторые ГУИйовины пилить. И понимаю что должно быть все кроссплатформененько. Исходя из этого в прикладном варианте вижу Qt решением своих проблем, но показалось что для нормального кодинга на Qt стоит довольно существенно освоится в плюсах.
Собственно вопрос - насколько С++ для моих задач лучший выбор инвестиций времени? Не будет ли достаточно Пайтона? Есть ли какие-то другие сильвер-буллеты для косплатформенной разработки низкосреде,
скорее
уровневых апликух для всякий этих IoT?
Аноним 23/04/17 Вск 13:55:15  978363
>>978344
Я в состоянии только первокурам помочь лабы решать)))
Не совсем понятно, чем ты там занимаешься. Если для настолок нужно что-то кросплатформенное, то можно смело перекатываться в JVM-языки, тысячи их: Java, Groovy, Scala, Kotlin, JPython. В многие ARM чипы встроены интерпретаторы JVM-кода, должно достаточно быстро работать.
Если ты там что-то для слабых железяк пишешь, то скорее всего у тебя будет только C, если повезёт, то C++.
Аноним 23/04/17 Вск 14:00:45  978372
>>978344
>Комрады, вопрос -
>я вообще С# + JS мидл под АSP,
>ко ко ко
Так бы и сказал, что ты петушок.
>вкатился вайти в 27, вот уже 3 года работаю, вышел на норм зп.
Всегда удивляли такие. Можно поинтересоваться, а что ты делал до 27? Писюн малафил и смотрел аниме? А потом БАЦ такой "надо стать ойтешнеком))". А потом и получаются говнокодеры.
Начинать учить программирование надо с первого класса, а как только закончишь 9 классов, в 15 лет идти джуном.
> и т.д., а ща перебрался на на еще более коровые задачи, и удаляюсь от веба.
>Но все это время по ночам под одеялкой кодал на сях под STM-ки прошивочки для всякой хоббийной и не очень поеботы, даже заработать успел малех. Ща понимаю что Шарпы оче ограничивают вендой, а мои хоббийные проектики требуют реализации уже во всяких эмбедед вариантах под линупсами. Какие-то простые вещи делал на сях в консольке, но уже тесновато. В общем, ща взялся учить плюсы, но одолевает сомнение небольше -
>по факту мне нужно как низкоуровневый контроль регистров/ножек железяки, так и некоторые ГУИйовины пилить. И понимаю что должно быть все кроссплатформененько. Исходя из этого в прикладном варианте вижу Qt решением своих проблем, но показалось что для нормального кодинга на Qt стоит довольно существенно освоится в плюсах.
МК только на С прогают(и немного на асме), ты че. Qt это ж на виндовс, а не мк.
>Собственно вопрос - насколько С++ для моих задач лучший выбор инвестиций времени? Не будет ли достаточно Пайтона? Есть ли какие-то другие сильвер-буллеты для косплатформенной разработки низкосреде,
А Пайтона под мк и нет, лол. Только С, только хардкор. Хотя с++ в любом случае тебе будет полезно, так как:
1)он подвид си и в си ты тоже повысишь скилл;
2)сможешь писать совместимое с мк по для компьютера, ведь с++ компилятор и си поддерживает
> скорееуровневых апликух для всякий этих IoT?
А вообще, этим в /ra/ занимаются, там есть треды посвящённые МК, ПЛИС, и arm.
Аноним 23/04/17 Вск 14:03:29  978377
>>978363
Писал под ARMы 4е, до этого под 8-бит контроллеры, ща под RPi пробую писать, т.е. под ARM и линь. Какого-то платформоспецифичного кода не планирую, по факту просто хочу универсальности. JVM смущает, хотя то это сейчас это вин не отрицаю. Но настолько радикально менять экосистему не хотел-бы. Все таки плюсы или пайтон скорее просто дополнят мой "портфель" навыков для винды и откроют двери в линь.
Аноним 23/04/17 Вск 14:06:30  978379
blob (519Кб, 640x480)
>>978372
>Qt это ж на виндовс
Аноним 23/04/17 Вск 14:10:32  978385
>>978313
>но в данном конкретном случае мне не важно сколько памяти занимает объект массива
Лол.
Аноним 23/04/17 Вск 14:16:14  978394
>>978372
>Так бы и сказал, что ты петушок.
Так ты ж сам все сказал за себя, чо мне клаву топтать лишний раз.
>Можно поинтересоваться, а что ты делал до 27
Чего тебе горит-то? В том числе кодил, но на тех позициях где кодить было скорее просто полезно чем необходимо, а основными задачами были писать всякие xslt карты конвертации, cmd скприпты и прочее околоайти. А потом манагерил нескольких вонабидевелоперов. Проблемы начали тогда когда я понял что мне приятнее самому в коде колупаться чем манагерить, и тогда решил вкатиться по полной, подтянул забытое и пошел джунить за хлеб с ЗП с пары кусков баксов на пару сотен. А ща вернулся на х2 от того со скольки уходил. В общем, нехуй всех судить по одному посту, признак быдла.
>МК только на С прогают(и немного на асме), ты че. Qt это ж на виндовс.
Штобля? Под что компилятор в asm напишут, на том и прогают. Под те же STM-ки из коробки есть либы и под С и под Плюсы. Под другие мелкие железяки встраивают интерпретаторы Lua, порой Пайтон, а иногда даже JS. Но да, C как бы стандарт де-факто.
По поводу Кьюта под Винду это ты что-то в лужу перданул. Видна там только одна из 3ти (или более) целевых осей.
>А Пайтона под мк и нет, лол. Только С, только хардкор.
Я ж говорю - мне ща более в системное/эмбед программирование нужно влиться. Хуй на МК, там все понятно, и моих С там хватает.

Аноним 23/04/17 Вск 14:18:59  978395
>>978372
>в 15 лет идти джуном.
Анука скажи что ты джуном ебашишь с 15ти?
Ну и типа не влился до первой малафьи - не кодер?
Футаким снобом быть.
Аноним 23/04/17 Вск 15:14:53  978435
8.png (1Кб, 563x48)
>>970816 (OP)
Платиновый нуфажий вопрос:
На вижуалке17 поставил Incrediбил (повелся, на рекламу), начал собирать через него и пизданулся стандартный сборщик.
Можно ли его быстренько выпилить и откатить это все или проще уже переустановить?
Аноним 23/04/17 Вск 15:16:35  978436
Бля, мне наверное надо было в оппост доске с этим пойти, да?
>>978435
Аноним 23/04/17 Вск 15:36:30  978444
>>978435
Спермопроблемы.

> или проще уже переустановить
Да. Переустанови ШINDOWS.
Аноним 23/04/17 Вск 15:50:56  978452
>>978344
Насколько низкоуровневый. Вообще, под микроконтроллеры, а частности ARM'овские имееются множество библиотек начиная с тех, которые просто предоставляют тебе доступ к регистрам, а дальше ты уже сам решаешь что как и когда выставить (то есть тут с даташитом придется очень плотно работать, потому что наебать самого себя шанс очень велик), емнип CMSIS назвается, есть и по-проще, например STM standard peripheral library, которая позволяет тебе с наименьшими усилиями конфигурировать все свое имущество. Для петухов, которые даже в это не смогли сделали отдельную штуку, называется mbed. Ну, и, естественно, к этому всему добру можно еще прихуячить какую-то RTOS, например FreeRTOS или eCos.
Конкретно по микроконтроллерам и крестам, все нормально будет, только вот не стоит увлекаться динамической аллокацией памяти, потому что можно ее охуительно фрагментировать и будет очень весело. Лучше использовать пулы или статику.
На микроконтроллерах, естественно, никакого Qt нет и быть не может, зато есть немного гуевских ПЛАТНЫХ библиотек, конечно же, на Цэ.

Касательно embed-а, то тут, мне кажется, что тебе бы для начала освоиться, как собрать дистриб Linux, не используя готовое решение, то есть ядро, дрова по необходимости, гуй и прочее говно, а потому уже в этот самый embed и влазить, потому что, очень много чего там делается на линуксе. Конечно, не стоит отметать WinCE, но тут проще на шарпах будет, я так думаю.
Однако, я, например, на работе пилил софтину для пульта управления, все говно вертелось на линуксе (не голом, конечно же, но софта там было минимум тайловый менеджер окон, базовы набор дров, необходимые либы и собственно софтина), с учетом того, что клаву туда подключить было нереально, то заморачиваться по поводу других каких-то штук я не видел смысла.
Аноним 23/04/17 Вск 16:10:29  978471
>>978452
> на работе пилил софтину для пульта управления, все говно вертелось на линуксе
Вот это как раз примерный пул моих задач.

По поводу МК, еще раз повторюсь - хуй с ними, там мне чистых С за глаза хватает. Ну как чистых - через HAL либы, конечно.

Хочу вкатится именно с недосистемное кроссплатформенное проганье. По факту - слушать порты, обрабатывать-валидировать ввод, преопразовывать данные, отправлять по сети/на другие поры, мигать лампочками, слушать кнопочки. Ну и GUI для мониторига статуса, вывода логов.
Аноним 23/04/17 Вск 16:18:53  978483
>>978319
>но мне нужно, чтобы именно для объекта b направить этот указатель, что бы потом через него вызывать виртуальный метод
Напиши по-русски без речевых ошибок, и я отвечу.
>>978344
>Собственно вопрос - насколько С++ для моих задач лучший выбор инвестиций времени?
Зависит от того, сколько ты готов ебаться с ними. В институте учил только C, в последние полгода пытаюсь с нуля запилить для себя что-то в Qt.
Если научишься быстро гуглить, проблем никаких. Но вот, например, вот это ты хрен нагуглишь, пока сам не столкнёшься: http://doc.qt.io/qt-5/implicit-sharing.html .
Когда инициализируешь POD-класс со вложенными классами, можно пользоваться aggregate initialization из C. Когда пишешь то же самое в аргументе для vector<T>::emplace_back() - это уже не катит, так как это уже не инициализация, и один в один скопированное выражение уже даёт ошибку: по правилам каждая пара фигурных скобок должна раскрываться во что-то одно, да и агрегатного конструктора вообще нет, он неявный.

Олсо, в QT есть QML, так что жабаскрип пригодится.
Аноним 23/04/17 Вск 16:19:16  978484
>>978471
Если ты хочешь, чтобы твой софт вертелся под управлением разных микроконтроллеров, например MSP, STM32, AVR, прочих ARM и т.д., то, если повезет, то адаптировать модули для работы с периферией ты будешь от серии микроконтроллеров к серии (не стоит думать, что если у тебя микроконтроллер на ядре ARM, то и периферия там одинаковая, производители стандарты периферийных устройств на хую вертели, поэтому у разных производителей встроенная периферия, как правило, разная), а в случае богомерзких AVR тебе придется менять модули от микроконтроллера к микроконтроллеру, потому что, возьмем те же ATmega8 и ATmega88 - вроде бы индексы похожие, а на деле в регистрах пиздос, поэтому конвертирование софта с одного ан другой приносит гемор, а в случае, когда настройки/ввод-вывод не были вынесены в отдельные процедуры, так полная жопа.
На микроконтроллерах переносимость связана с написанием полнейшей дичи. Подумай сто раз, нужно ли тебе это и для каких целей. Может гораздо проще все делать на готовом решении, например RPi или Odroid (кстати, вторым мое увожение, потому что, в отличие от первых, смогли-таки завезти нормальные дрова на видео-ускоритель)
Аноним 23/04/17 Вск 16:20:02  978485
>>978483
>Но вот, например, вот это ты хрен нагуглишь, пока сам не столкнёшься: http://doc.qt.io/qt-5/implicit-sharing.html .
>Когда инициализируешь POD-класс со вложенными классами, можно пользоваться aggregate initialization из C. Когда пишешь то же самое в аргументе для vector<T>::emplace_back() - это уже не катит, так как это уже не инициализация, и один в один скопированное выражение уже даёт ошибку: по правилам каждая пара фигурных скобок должна раскрываться во что-то одно, да и агрегатного конструктора вообще нет, он неявный.

Это я к тому, что есть множество незначительных проблем, которые ясным умом не понять, так как стандарт писал не ты.
Аноним 23/04/17 Вск 16:25:44  978491
>>978484

Да что ж такое:) Как бы еще подчеркнуть что МК для меня сейчас не на повестке дня?
>На микроконтроллерах переносимость связана с написанием полнейшей дичи.
Да, видел я код написанный для того чтобы компилится под разные версии AVR - это ебанный mess и #IFDEF-ов и тысячей вариаций одного и того же кода. И мне оно нахуй не надо -
Мне хватает семейства STM-ов, для который большинство перефирии +- причесали для однотипного использования. Так что часть МК для меня пока закрыта, и нужно закрыть часть по написанию эмбедового "бэкенда" который будет данные с этих контроллеров собирать и давать пользователю это все мониторить/менеджерить. ПОтому и Линукс, потому и Qt
Аноним 23/04/17 Вск 16:26:49  978492
>>978485
Да, на QML смотрю облизываясь, но боюсь браться не разобравшись в кишках C++, дабы не остаться на уровне формошлепа под линупс.
Аноним 23/04/17 Вск 16:41:32  978499
>>978491
>> на QML смотрю облизываясь
Уж сколько лет прошло с его появления, так и остается багованным говнищем. Хотя для мелокоподелок его за глаза, а вот полноценное приложение только лишь на QML я бы писать не стал, разве что фронт-енд.
Аноним 23/04/17 Вск 16:46:24  978508
>>978499
ну я его даже и не рассматриваю как основу для приложения, и удивлен что кто-то рассматривает.
По сути это удобная хуйня для написания вьюхи с вкраплениями бизнес логики. Конечно вся логика должна быть вынесена в плюсы.
Аноним 23/04/17 Вск 16:49:23  978509
>>978394
>А Пайтона под мк и нет, лол. Только С, только хардкор.
>Я ж говорю - мне ща более в системное/эмбед программирование нужно влиться. Хуй на МК, там все понятно, и моих С там хватает.
Лол што? Микроконтроллеры это и есть Embedded, STM, AVR, PIC это мк, ну ARM ещё. Что в твоём понимании embedded, раз это не мк?
Аноним 23/04/17 Вск 16:59:13  978520
>>978509
Это тоже эмбед, да. Но в системное проганье то что ты описал не входит. Потому говоря "системное/эмбед" проганье я подразумеваю не или/или а некторый стык этих двух областей.
Но а по поводу того что сейчас понимается под embedded - посмею тебя удивить, но это прежде всего код под Linux в тех или иных его масштабах, под специфичное железо, влючая написание дров и конфигурирование этого железа под линь. И как самый мозговыносящий момент - в качестве сборки линя для всяких железяк типа баркод-сканера или POS терминала сейчас поразительно часто предпочитают Android, и разработка под Андроид тоже очень часто стала подразумеватся под embedded.

А голый кодинг под МК уже чуть ли не архаика и прерогатива аutomotive сегмента, куда набирают С-макак да, странно слышать на 500-1000 уе без шанса роста. Но то уже офтоп
Аноним 23/04/17 Вск 17:15:36  978537
>>978520
>И как самый мозговыносящий момент - в качестве сборки линя для всяких железяк типа баркод-сканера или POS терминала сейчас поразительно часто предпочитают Android, и разработка под Андроид тоже очень часто стала подразумеватся под embedded.
Т.е. андроид применяется не только в телефонах, но и в промышленности?
>А голый кодинг под МК уже чуть ли не архаика и прерогатива аutomotive сегмента, куда набирают С-макак да, странно слышать на 500-1000 уе без шанса роста. Но то уже офтоп
Я походу это. Учусь на автоматчика и мы писали на С на мк AVR. У преподавателя такая же работа.
Аноним 23/04/17 Вск 17:19:49  978544
>>978537
>Т.е. андроид применяется не только в телефонах, но и в промышленности?
Прикинь) Потому не теряй времени и копай в линукс, будешь ценным "кадром". На проганье МК слишком много дедов сидит, на копеечные ЗП.
> чусь на автоматчика
Если уж нравится носом в регистрах зарываться, то учи Пролог, ПЛИС, и т.д. Там хоть ЗП со среднепрограммистскими равняются. Но стартовать все равно сложно - порог вхождения не низкий.
Аноним 23/04/17 Вск 18:22:22  978584
>>978537
Мне все время казалось, что ведроиду не место в индустрии. Там уже плотно сидят WinCE и Linux.
То, что в ведроиде зачастую могут валиться приложения в самый неподходящий момент, да и вообще создан он был не для этого. Цена ошибки высокая, особенно когда она проявляется в нарушении рабочего цикла уже у клиента, так что тут только WinCE и Linux, ИМХО.
Касательно C++ с Qt под андроидом - тут тоже своих косяков хватает. Кроме них придется в любом случае ебаться с JNI, чтобы получать права доступа и прочее, прочее... Не проще ли тогда сразу использовать Java, вместо плясок с бубном, и в итоге получив кучу говна идущего впридачу с Qt?!
Аноним 23/04/17 Вск 18:27:27  978590
>>978584
В критических местах "индустрии" и обычному линю не место, только всякие RTOS, только хардкор.

Но таких мест не так много, на самом деле. А в остальных удобство разработки, тайм-ту-маркет, нличие поддержки и экосистемы куда важнее стабильности оказывается. Да и той стабильности что есть - за глаза хватает.
Аноним 23/04/17 Вск 19:03:30  978621
>>978483
>Напиши по-русски без речевых ошибок, и я отвечу.
Посредством объекта b и указателя p вызовите виртуальную функцию WhereAmI() класса A
Аноним 23/04/17 Вск 19:49:10  978648
>>978621
То есть, тебе нужно вызвать метод объекта А по отношению к Б вместо правильного метода, так?
Ты должен делать это изнутри.

class A {
virtual void huy();
}

class B : class A {
void oldHuy() {
A::huy();
}
}

Сделать это снаружи ты не можешь. Методы для того и делают виртуальными, чтобы вызывались самые близки пол дереву наследования версии, и делают это в том числе потому, что методы базы могут быть несовместимы с предком.
Аноним 23/04/17 Вск 19:50:45  978649
>>978648
Поправочка:

class A {
virtual void huy(){cin<<'fuck';}
}

class B : class A {
virtual void huy(){cin<<'beach';}
void oldHuy() {
A::huy();
}
}
Аноним 23/04/17 Вск 19:57:30  978654
>>978648
>Сделать это снаружи ты не можешь.
Может.
Аноним 23/04/17 Вск 20:43:37  978687
>>978648
На то они виртуальные, что знают, к какому классу принадлежат.
Аноним 23/04/17 Вск 20:46:00  978689
>>978654
Код в студию.
Аноним 23/04/17 Вск 21:11:18  978706
>>978689
>Код в студию.
Не пользуюсь студией.
http://ideone.com/VnrzJh
Аноним 23/04/17 Вск 22:35:39  978745
>>978706
Поняяяяяятно. Но: http://ideone.com/XgK4eV
Аноним 23/04/17 Вск 22:36:59  978749
>>978745
И?
Аноним 23/04/17 Вск 22:41:13  978752
>>978745
Дядя, идите лучше Джаву или Питон осиливайте. Вам кресты не по зубам.
Аноним 23/04/17 Вск 23:17:51  978779
Так, парни, это снова я с деревьями. Не могу найти в интернете ман по валгринду на русском. А то как-то неудобно со своими сегментайшен файлтами лезть.
Аноним 23/04/17 Вск 23:20:13  978782
>>978779
> Не могу найти в интернете ман по валгринду на русском.
Без мана не можешь написать
valgrind ./kokoko
(./kokoko - это твой бинарник) ?
Аноним 23/04/17 Вск 23:21:53  978784
http://stackoverflow.com/questions/8003233

Оооооооох... Уже скучаю по сишечке.

>>978749
Можешь не продолжать. Я получил ответ на свой вопрос и дополнил его.
>>978752
Тебя забыл спросить. А, нет, не забыл, просто иди нахуй.
Аноним 23/04/17 Вск 23:22:11  978785
>>978782
>valgrind ./kokoko
А, нужно через ./
Спасибо
Аноним 23/04/17 Вск 23:22:36  978786
>>978785
> А, нужно через ./
А до этого ты как запускал свои поделки?
Аноним 23/04/17 Вск 23:31:57  978791
>>978786
Запускал так, просто ждб запускатся просто по имени файла.
Аноним 23/04/17 Вск 23:36:38  978793
>>978786
Вот пишет мне волгринд, что я использую неициализированную перменную структуры, но при этом ее значение правильное. Как я могу посмотреть еще что-нибудь?
Аноним 23/04/17 Вск 23:38:01  978794
>>978793
>я использую неициализированную перменную структуры, но при этом ее значение правильное
В смысле?
> Как я могу посмотреть еще что-нибудь?
Что конкретно?
Аноним 23/04/17 Вск 23:41:25  978798
>>978794
>В смысле?
https://clbin.com/RCh7Uy.png
>Что конкретно?
Вообще что угодно. Любая информация, которая может помочь понять в чем дело.
Аноним 23/04/17 Вск 23:45:38  978802
>>978798
>Любая информация, которая может помочь понять в чем дело.
Посмотри в код.
Аноним 23/04/17 Вск 23:46:46  978803
>>978802
А ты хорош.
Аноним 24/04/17 Пнд 00:39:57  978856
В общем я не знаю в чем причина.
Program received signal SIGSEGV, Segmentation fault.
0x0000000000401ef4 in Off_base (Top_node=0x0, file=...) at Server.cpp:62
62 int S = Top_node -> IsAHum_;
Вот, что пишет gdb.
https://clbin.com/IayfF0.png
А вот, что выдает валгринд. Память нигде выше не освобождается, выделяется только в одном месте через нью и после проблемной функции освобождается.
Аноним 24/04/17 Пнд 00:45:14  978863
>>978803
Что не так? Номера строк тебе написали.
Аноним 24/04/17 Пнд 00:45:38  978864
>>978856
Код ты нам, конечно, не покажешь.
Аноним 24/04/17 Пнд 00:49:51  978865
>>978856
Кусок проблемного кода https://pastebin.com/36GstaA8 Проблема в первом вызове IsAHum_
Вся функция целиком https://pastebin.com/c7K2XA6S
Вот ашник (Tree.h) https://pastebin.com/LYY2RZf4
Вот реализация класса, проблемная функция не оттуда, но возможно, что он при проходе как-то влияет на дерево (User.cpp) https://pastebin.com/2KV0sbVk
Аноним 24/04/17 Пнд 00:51:17  978866
>>978863
Ну так я и не понимаю, что не так в этой безобидной строке.
>>978865
В добавок, вот пример файла, подаваемого на вход, назвать Base.txt https://pastebin.com/aw8wgYy2
Аноним 24/04/17 Пнд 00:52:53  978867
>>978865
Скинь архивом с именами файлов.
Аноним 24/04/17 Пнд 00:58:18  978870
>>978865
У меня valgrind ни на что не жалуется.
Но и выходной файл пустой.
Аноним 24/04/17 Пнд 00:59:59  978871
>>978870
После каждого запуска программы, выходной файл нужно обновлять(он по совместительству является входным) до того, что я скинул в пастбине.
Аноним 24/04/17 Пнд 01:00:25  978872
>>978871
Я просто сделал вывод в файл с другим именем, входной не портится.
Аноним 24/04/17 Пнд 01:05:10  978873
>>978871
Да, понятно. past ebin превратил \n в \r\n
Аноним 24/04/17 Пнд 01:05:11  978874
>>978872
Интересная ситуация. А входной у тебя как у меня ?
https://clbin.com/559E3G.png
Аноним 24/04/17 Пнд 01:05:38  978875
>>978874
Поэтому надо кидать архивом, чтобы ничего не портилось.
Аноним 24/04/17 Пнд 01:06:57  978876
>>978798
>Любая информация, которая может помочь понять в чем дело.
В предпоследней строке тебе valgrind говорит, что ещё можно сделать.
Аноним 24/04/17 Пнд 01:14:22  978879
>>978856
>В общем я не знаю в чем причина.
Смотри в 68-ю строку.
Аноним 24/04/17 Пнд 01:17:12  978880
>>978879
У меня к вам предложение. Не бейте лучше обоссыте.
А не расскажешь, как нашел?
Аноним 24/04/17 Пнд 01:18:01  978881
>>978880
valgrind --track-origins=yes ./Server
Аноним 24/04/17 Пнд 01:18:10  978882
>>978880
Хотя я подумал, можно было догадаться по жалобе на строку в цикле.
Аноним 24/04/17 Пнд 01:18:48  978883
>>978881
Я кстати тоже это забил и ничего полезного почерпнуть не смог. https://clbin.com/ABIcuE.png
Аноним 24/04/17 Пнд 01:21:03  978885
>>978883
Неинициализированную память выделил vector. Скорее всего, ты лезешь за границы инициализированного в ней.
Аноним 24/04/17 Пнд 19:46:36  979275
auto t1 = std::async(test);
auto t2 = std::async(test);
return t1.get() == 0 && t2.get() == 0;

Почему только один тред запускается? Нет времени по докам лазить
Аноним 24/04/17 Пнд 21:00:35  979302
>>979275
std::async(std::launch::async, test)

Кстати, отличный сервис, можно установить зависимости, собрать проект и запустить тесты https://travis-ci.org/theanonym/libyoba-perl/builds/225310958
и будет собираться автоматически после каждого коммита
Аноним 24/04/17 Пнд 22:45:13  979378
>>978492
В кишках С++ ты хуй разберёшься.
http://stackoverflow.com/questions/98650/what-is-the-strict-aliasing-rule

Если вкратце, то это правило означает то, что от приведения типов указателей твой брат умрёт.
Аноним 24/04/17 Пнд 23:04:35  979402
>>979275
t1.get() != 0
Аноним !VtH.ahzeV6 25/04/17 Втр 00:47:38  979478
перекат
>>979476 (OP)
>>979476 (OP)
>>979476 (OP)
>>979476 (OP)
>>979476 (OP)
>>979476 (OP)
>>979476 (OP)
>>979476 (OP)
>>979476 (OP)
>>979476 (OP)
>>979476 (OP)
>>979476 (OP)
>>979476 (OP)
>>979476 (OP)
>>979476 (OP)
Аноним 17/05/17 Срд 01:30:05  992049
>>977629
С тем же самым говном пришел на двач сейчас и даже тут ответов нет

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 598 | 25 | 130
Назад Вверх Каталог Обновить

Топ тредов
Избранное