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

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

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

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

75 Кб, 400x400

63 Кб, 446x606

C++ #50 юбилейный 10 Апр, 13:05 #970816 В конец треда | Веб

Вместо шапки - https://github.com/sosachbot/cppthreadhat/wiki
Ответы на все вопросы - http://en.cppreference.com/w/ http://www.cplusplus.com/reference/

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

Теги: кресты, cpp

Ответы971008971397975253976336976359976839977936978325978435

10 Апр, 13:53 #2 #970841

Лул до сих пор мою шапку юзают
Пора бы туда ситхов запилить

172 Кб, 1631x2207

10 Апр, 14:16 #3 #970859

Подписался.

10 Апр, 16:40 #4 #970952

Как вернуть массив символов из функции без использования указателей и контейнеров? Например: char array[100] = function();

Ответы970959970974970997971017971019971021971103971110

10 Апр, 16:49 #5 #970959

>>970952
std::array<char, 100>

10 Апр, 17:21 #6 #970974

>>970952
auto func() {char arr[100]; return arr;}
Компилировать с -std=c++14

Ответы970989971028971111

10 Апр, 17:54 #7 #970989

>>970974
Все равно возвращает адрес локальной переменной.
"warning: address of local variable 'array' returned" "incompatible types in assignment of 'char*' to 'char[2]"

10 Апр, 18:08 #8 #970997

>>970952
Никак, функция возвращает скалярное значение либо ничего. Она тебе должна 100 символов пихнуть в стек? Наркоман.

Ответы970998

10 Апр, 18:10 #9 #970998

>>970997
Каждому лектору - в жопу по вектору.

10 Апр, 18:20 #10 #971008

>>970816 (OP)
Куда делся ОП-стихописец?

Ответы973245

10 Апр, 18:26 #11 #971017

>>970952
neekaque

10 Апр, 18:28 #12 #971019

>>970952
Кек
char (&GetArr())[100]
{
static char arr[100] = "Use std::array";
return arr;
}
void main()
{
char (&arr)[100] = GetArr(); // or auto& arr = GetArr();
}

Ответы971022971023

10 Апр, 18:30 #13 #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 Апр, 18:30 #14 #971022

>>971019
А там точно не надо && или &&& может быть?

10 Апр, 18:31 #15 #971023

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

10 Апр, 18:34 #16 #971028

>>970974
массив упрощается до указателя, и ты возвращаешь указатель на удаленную область. U N D E F I N E D B E H A V I O R

10 Апр, 19:46 #17 #971103

>>970952
Возвращай char[900001] и используй только столько, склько нужно, очевидно же.

Ответы971107

10 Апр, 19:50 #18 #971107

>>971103
Зеленый?

Ответы971108971111

10 Апр, 19:51 #19 #971108

>>971107
Этот тот уёбок, которому надо вернуть массив без указателей, зелёный. А я всего лишь контраллирую.

10 Апр, 19:58 #20 #971110

>>970952
Ссылка на память в таких массивах константная, её нельзя переопределить. если вдруг до сих пор не понятно было

10 Апр, 20:00 #21 #971111

>>970974 >>971107
http://ideone.com/lYnRfd

Ответы971113

10 Апр, 20:02 #22 #971113

>>971111
А там нельзя эту вашу парашу с && заебенить чтобы не было копирования лишнего и память прям в стеке вызывающего выделилась?

Ответы971116

10 Апр, 20:07 #23 #971116

>>971113
Можно. Там не надо её реализовывать для данной задачи. Компилятор протаскивает значение функции, дублировать не приходится.

http://ideone.com/jhnypk

Ответы971120

10 Апр, 20:10 #24 #971120

>>971116
Вау круто оптимизации 2017 год!
А в каких случаях нужно ее явно указывать? Ведь зачем-то ее придумали.

Ответы971124

10 Апр, 20:12 #25 #971124

>>971120
Ну да. Гугли конструктор перемещения.

10 Апр, 20:15 #26 #971128

https://www.youtube.com/watch?v=qvDtRu68eaI

бамп Богиней

Ответы971134972750972804

10 Апр, 20:24 #27 #971134

>>971128
Да что тут говорить. Пока модули и reflection не введут - нечего даже начинать пердуны старые, нашли что вводить в C++17, говноеды. "Си с классами" ковыряйте - и будет вам.

10 Апр, 20:35 #28 #971140

Чем отличается gnu c++ от других?

Ответы971144

17 Кб, 386x251

1 Кб, 98x41

10 Апр, 20:38 #29 #971144

>>971140
отлеилось

Ответы971147971148

10 Апр, 20:41 #30 #971147

>>971144
Про язык C слышал?

Ответы971150

10 Апр, 20:41 #31 #971148

>>971144
А?

10 Апр, 20:44 #32 #971150

>>971147
Ну и? я просто начинающий аутист и мне нужно сделать задачку

Ответы971153

10 Апр, 20:46 #33 #971153

>>971150
C и C++ - разные языки.

Ответы971158

10 Апр, 20:46 #34 #971154

Как сделать codeblocks запускать откомпиленные исполняемые файлы не через cb_console_runner?

Ответы971155

10 Апр, 20:47 #35 #971155

>>971154
Вас там заставляют этой мочой пользоваться?

Ответы971164

10 Апр, 20:47 #36 #971158

>>971153
Ну я знаю. Но что обозначает приставка GNU?

Ответы971161971478

10 Апр, 20:48 #37 #971161

>>971158
Гугли.

Ответы971172

10 Апр, 20:49 #38 #971164

>>971155
А чем он плох?

Ответы971168

10 Апр, 20:50 #39 #971168

>>971164
Плох тем, что есть альтернативы намного лучше.

Ответы971170

10 Апр, 20:52 #40 #971170

>>971168
И под линуксом? Например? Чем лучше?

Ответы971176

10 Апр, 20:53 #41 #971172

>>971161
Я даун. Буду учить.

10 Апр, 20:57 #42 #971176

>>971170
Лучше объективно. Пользуйся кодблоком своим, если тебе норм.
Из альтернатив Eclipse, CLion, NetBeans.

Ответы971186

10 Апр, 21:04 #43 #971186

>>971176
>Лучше объективно
Ну что значит "объективно"? Мне интересно узнать, что я упускаю не пользуясь вышеперечисленными IDE.

Ответы971190971224

10 Апр, 21:08 #44 #971190

>>971186
Я не в силах объяснить, поскольку не помню, чем плох codeblocks.

Ответы971221

10 Апр, 21:47 #45 #971221

>>971190
А примерно так можешь почувствовать вспомнить?

Ответы971227

10 Апр, 21:50 #46 #971224

>>971186
Ими вообще никто не пользуется, и они никому нахуй не нужны. Под LOONIXом у тебя либо qtcreator, либо CLion, как меньше и зол джаваговна. А вообще, с божественной студией ничему не сравнится

Ответы971244

10 Апр, 21:51 #47 #971227

>>971221
Нет. Повторю ещё раз - я не какой-то сектант, мне никто не платил, чтобы IDE двигать. Если тебе норм - пользуюся кодблоком.

Ответы971294

10 Апр, 22:06 #48 #971244

>>971224
Школьник, уймись.

Ответы971247971264

10 Апр, 22:07 #49 #971247

>>971244
Но я не школьник

Ответы971251

10 Апр, 22:08 #50 #971251

>>971247
> не умеет в -тся -ться
> тащится от студии
...
> ДА Я НЕ ШКОЛЬНИК!11

Ответы971258

10 Апр, 22:13 #51 #971258

>>971251
ты, поди, по ВИМУ угараешь? Есть такой подвид мудаков из каменного века, которые не любят студи.

Ответы971264971274

10 Апр, 22:15 #52 #971264

>>971258
>>971244

10 Апр, 22:23 #53 #971274

>>971258
>которые не любят студи.
школотрон не палицо

10 Апр, 22:25 #54 #971276

С или С++?

Ответы971277971285

10 Апр, 22:26 #55 #971277

>>971276
Яблоки или груши?

Ответы971279

10 Апр, 22:27 #56 #971279

>>971277
Есть два стула, на одном тайпдефы точёные, на другом - кресты дрочёные.

10 Апр, 22:33 #57 #971285

>>971276
java

10 Апр, 22:37 #58 #971288

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

Ответы971291

10 Апр, 22:38 #59 #971291

>>971288
Хуй знает.

Ответы971293

10 Апр, 22:39 #60 #971293

>>971291
Не знает.

10 Апр, 22:40 #61 #971294

>>971227
Ну ладно

10 Апр, 23:49 #62 #971393

здаровча!
вопрос серьезный. вот объявили
class APA
{ тут всякие паблики, приваты
} APA;
что означает APA?

10 Апр, 23:51 #63 #971397

>>970816 (OP)
здаровча!
вопрос серьезный. вот объявили
class APA
{ тут всякие паблики, приваты
} (звездочка)APA;
что означает (звездочка)APA?

Ответы971413972287

11 Апр, 00:08 #64 #971413

>>971397
Сразу объявляется переменная-указатель на этот класс.

11 Апр, 01:04 #65 #971432

Аноны, поясните в чем разница между operator new и new как ключевое слово. Сам вопрос возник из-за этой статьи:
https://habrahabr.ru/post/185662/

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

Ответы971435971527971870971885

11 Апр, 01:09 #66 #971435

>>971432
Вопрос туда же: зачем оператор new принимает параметр size, ведь мы же знаем размер объекта, для которого вызывается этот оператор

Ответы971439

11 Апр, 01:16 #67 #971439

>>971435
тому что new Yoba() это шорткат для (Yoba*)::operator new(sizeof(Yoba))

Ответы971443971447

11 Апр, 01:20 #68 #971443

>>971439
конструктор потелялся после оператора new

11 Апр, 01:27 #69 #971447

>>971439
So? Мы то вызывает оператор new который внутри Yoba, а раз так, то мы можем просто внутри оператора использовать тот же самый sizeof:

class Yoba {

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

у меня просто Java головного мозга

Ответы971499

11 Апр, 02:08 #70 #971478

>>971158
В зависимости от того, насколько автор программы идиот: либо компилятор GCC, либо -std=gnu++11.

11 Апр, 02:12 #71 #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.

Конверсия в буль через птр... КТО ЭТО ПРИДУМАЛ?

Ответы971501971547

11 Апр, 02:33 #72 #971498

[code]class A{
};

11 Апр, 02:34 #73 #971499

>>971447
>return malloc(sizeof(this))
Макакина вакаба сожрала твои звёздочки. Нельзя так людей пугать.

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

Аллоцировать можешь как тебе нравится - хочешь маллоком, хочешь на своём линейном буффере с блекджеком и шлюхами.

Ответы971560

11 Апр, 02:35 #74 #971500

struct A : vector<int>
{
};
struct B
{
A a;
};

OK

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

Поясните

Ответы971504

11 Апр, 02:35 #75 #971501

>>971482
А конверсия ptr в буль это типо по человечески?

Ответы971519

11 Апр, 02:38 #76 #971504

>>971500
В первом случае кнопилятор сумел вычислить размер структуры А и поэтому сумел запихнуть его в объект Б.

Во втором случае компилятор не ебет, какой размер у структуры А во время объявления структуры Б. Компилятор лишь знает, что ты мамкой поклялся объявить когда-нить структуру А. Если поменяешь на указатель во втором случае - сработает.

Ответы971507

11 Апр, 02:44 #77 #971507

>>971504
Спасибо

11 Апр, 03:31 #78 #971519

>>971501
Не очень, но к простоте выражения if(data) привыкаешь. Меня больше позабавило operator voidЗВЁЗДОЧКА.

11 Апр, 04:11 #79 #971527

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

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

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

> https://habrahabr.ru/post/185662/
А, с хабрапараши. Вернись на парашу.

11 Апр, 04:39 #80 #971535

Если есть две функции
void test(Int x)
void test(int x)
Компилятор ведь обосрётся если на его платформе sizeof(Int)==sizeof(int)? Нужно писать #if sizeof(Int)==sizeof(int) для второй функции?

Ответы971536971537971538971548

11 Апр, 04:41 #81 #971536

>>971535
>Компилятор ведь обосрётся если на его платформе sizeof(Int)==sizeof(int)?
Обязательно обосрётся.

11 Апр, 04:41 #82 #971537

>>971535
Точнее != во втором случае

Ответы971538

11 Апр, 04:44 #83 #971538

>>971535
>>971537
Про что несёт?

Ответы971539

11 Апр, 04:49 #84 #971539

>>971538
Я хочу сделать так

#define INT long long

void test(INT)
#if sizeof(int) != sizeof(INT)
void test(int)
#endif

Ответы971540

11 Апр, 04:49 #85 #971540

>>971539
А зачем?

Ответы971541

11 Апр, 04:54 #86 #971541

>>971540
Чтобы не нужно было писать INT(x) при вызове функции, та функция что принимает int это как хелпер для автоматического каста в больший тип, но интересно что будет если окажется что это одинаковые типы для компилятора

Ответы971542

11 Апр, 04:54 #87 #971542

>>971541
int и long long это всегда разные типы для компилятора.

11 Апр, 07:46 #88 #971547

>>971482
Раньше по другому было нельзя. Гугли по safe bool idiom насчет того, почему просто operator bool не работает. Теперь-же есть explicit operator bool, и проблемы отпадают.

11 Апр, 07:48 #89 #971548

>>971535
Скорее ты обосрёшься от полного отсутствия знаний.

11 Апр, 08:50 #90 #971560

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

Т.е. в любой записи по типу Foo *f = new Foo(); new является ключевым словом, которое уже вызывает оператор и конструктор по умолчанию?

Ответы971692

11 Апр, 13:10 #91 #971692

>>971560
А ещё убеждается, что при исключении в конструкторе память освобождается.

11 Апр, 16:22 #92 #971870

>>971432
В статье есть ссылки на стандарт, открой и почитай.

11 Апр, 16:32 #93 #971885

>>971432
В частности читни 3.7.4

11 Апр, 20:32 #94 #972016

Возможно в райнтайме создать С функцию чтобы передать адрес как колбек? Например создать std::function и конвертировать

Ответы972024972026

11 Апр, 20:40 #95 #972024

>>972016
По-человечески опиши проблему

Ответы972255

11 Апр, 20:43 #96 #972026

>>972016
Но вот, что я нашёл:
http://stackoverflow.com/questions/11016078/is-it-possible-to-create-a-function-dynamically-during-runtime-in-c

Ответы972297

12 Апр, 06:33 #97 #972255

>>972024
atexit([](){}), что не понятно? atexit принимает указатель на функцию, которая должна быть прописана в бинарнике. А std::function можно создать динамически, но как конвертировать её в С-функцию - не понятно.

Ответы972261972297

12 Апр, 07:16 #98 #972261

>>972255
> конвертировать её в С-функцию
std::function::target же

Ответы972278972297

12 Апр, 08:52 #99 #972278

>>972261
http://ideone.com/ljYpUt
Сегфолтится. Проблема очевидно в разименовании указателя, который возвращает target(), но если убрать звёздочку - не компилится. Тип в <> неправильно написал?

Ответы972280972297

12 Апр, 09:04 #100 #972280

>>972278
А, только что прочитал, что target() может вернуть nullptr и сразу же забыл об этом и не проверил результат. Вопрос почему target() не работает ещё открыт.

12 Апр, 09:43 #101 #972287

>>971397
class Human {
int health;
std::string name;
} person1;

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

class Human {
int health;
std::string name;
};
Human person1;

Ответы972291

12 Апр, 09:50 #102 #972291

>>972287
мог и указатель объявить. (звездочка)person1

12 Апр, 09:55 #103 #972293

Ананасы, у меня вопрос по культе Qt
Имеется необходимость создавать message box`ы. Использую для этих целей QMessageBox::warning(...).
И интересно мне вот что - можно ли как-нибудь запретить создание message box`а, если другой message box уже показан?

Ответы972297

12 Апр, 10:10 #104 #972297

>>972255
>А std::function можно создать динамически

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

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

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

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

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

Ответы972301

12 Апр, 10:19 #105 #972299

И ещё идея: ты можешь сбацать простенький интерпретатор, и динамические функции твои - это интерпретатор+программа. И даже в этом случае ты не сможешь сделать С-функцию: интерпретатор у тебя один, а в указателе ссылку на программу не передашь.

И если вдруг ты пойдёшь по пути компилирования на лету, то тебе придётся платформозависимо что-то вызывать - LoadLibrary, например. Ни один другой язык программирования не может сбацать тебе экспортные C-функции без компилирования в dynamic library и подгрузки оной, на одна ОС не даст этого сделать.

12 Апр, 10:25 #106 #972300

Вот объявление этого вашего target() в STL GCC:
template<typename _Functor> _Functor target() noexcept;
/// @overload
template<typename _Functor> const _Functor target() const noexcept;

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

12 Апр, 10:29 #107 #972301

>>972297
Нужно чтобы пользователь библиотеки мог передать лямбду вместо того чтобы каждый раз прописывать статическую функцию и передавать её адрес. А мне эту лямбду нужно завернуть в другую (то есть нужен захват [&]) и поставить конечную лямбду как колбек, atexit для примера.

Ответы972311972313972324972333

12 Апр, 10:56 #108 #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 Апр, 11:01 #109 #972313

>>972301
Нахуя? Чем тебя указатель на функцию или std::function не устроил?

https://ideone.com/tPjaoY

Ответы972315

12 Апр, 11:07 #110 #972315

>>972313
Нужно взаимодействовать с Си, очевидно же

Ответы972318

12 Апр, 11:13 #111 #972318

>>972315
https://ideone.com/tPjaoY

12 Апр, 11:24 #112 #972324

>>972301
>поставить конечную лямбду как колбек

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

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

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

https://ideone.com/lep9aV

Можешь завести стек и складывать в него все зарегенные колбеки.

12 Апр, 11:56 #113 #972333

>>972301
>А мне эту лямбду нужно завернуть в другую (то есть нужен захват [&]) и поставить конечную лямбду как колбек, atexit для примера.
Забудь. atexit() принимает указатели на функции. Лямбда с нетривиальным захватом не превращается в указатель на функцию.

12 Апр, 11:58 #114 #972334

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

Ответы972341972343

12 Апр, 12:24 #115 #972341

>>972334
Тот самый момент, когда ты настолько профнепригоден, что даже студию поставить не можешь

Ответы972350

12 Апр, 12:34 #116 #972343

>>972334
Пора отращивать прыщи.

Ответы972350

7 Кб, 415x424

12 Апр, 13:00 #117 #972350

>>972343
>>972341
Установил, и теперь вот такая проблема, на пике.
Это пиздец. У меня задание - сделать простой текстовый квест на условиях. Я его сделал, пытаюсь компилировать - и такая хуйня.
При создании проекта выбирал консольное приложение, пустой проект. НИкаких библиотек не ставил.

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

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

Помогите пожалуйста, умоляю, может есть какая другая IDE с поддержкой кириллицы?

Ответы972366972393972427

12 Апр, 13:46 #118 #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 - а вот это может помочь. Вспоминаю это.

Ответы972402

17 Кб, 596x152

iosbase 12 Апр, 14:26 #119 #972386

Объясните мне, что значит "open for input"? А если я не укажи ни аут, ни ин, то что будет?

В реализации уже подглядел (там хитро), а где это в стандарте найти?

Ответы972387

14 Кб, 415x365

12 Апр, 14:27 #120 #972387

>>972386
Нашёл.

12 Апр, 14:45 #121 #972393

>>972350
Попробуй ангуляр там, или питон. Очевидно, что кресты это не твое.

Ответы972399972402

12 Апр, 14:50 #122 #972399

>>972393
Конкретно эта ошибка - один из многочисленных багов в студии. Студия - это не кресты, это студия.

Ответы972402972403

12 Апр, 14:51 #123 #972402

>>972399
>>972393
Так я знаю.
В общем в десятый раз все переустановил, ошибка не пропала - но код заработал.

>>972366
Благодарю, качаю.

12 Апр, 14:54 #124 #972403

>>972399
в чем баг конкретно?

Ответы972424

206 Кб, 1280x1024

12 Апр, 14:59 #125 #972407

Бенчмарк говорит что моя либа говно. Красивые лямбды function<Scalar(Scalar)> с захватом чего угодно и управлением стеком за экраном дают прирост производительности всего 30% (в сравнении с обычным скриптом), а если просто на Си сделать stack[0] = factorial( stack[0] ) - прирост производительности 970%

Ответы972424972430

12 Апр, 15:59 #126 #972424

>>972403
В том, что в какой-то момент студия начинает предлагать пересобрать проект после каждого запуска, и при этом ничего не клмпилирует и не линкует, только один файлик какой-то обновляет. Читай ссылку на СО, там у людей в точности то же.
>>972407
Ты не смог, но ты пытался. Попробуй -O3. Команды матчишь мапом? Есть перфект хэш, вроде: даёшь набор ключей, и он минимизирует линейный поиск по вёдрам.

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

И -funroll-loops попробуй.

Ответы972425972488

12 Апр, 15:59 #127 #972425

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

12 Апр, 16:05 #128 #972427

>>972350
Это такая шутка? Ты не можешь просто нажать да?

12 Апр, 16:11 #129 #972430

>>972407
std::function это типа shared_ptr: почти всегда (за исключением размера лямбды ≤ 1-2 sizeof(void*)) динамическое выделение памяти и подсчёт ссылок.

Ответы972488

12 Апр, 17:17 #130 #972474

Здарова, куканы.
Подскажите, пожалуйста, хорошую (не обязательно популярную) библиотеку для работы с асинхронным IO (файловые операции и сетевые сокеты обязательно), можно даже на Цэ.

Ответы972649

71 Кб, 891x479

139 Кб, 1041x667

31 Кб, 877x133

12 Апр, 18:01 #131 #972488

>>972424
Коллбеки лежат в четырёх unordered_map<string, function> и в зависимости от контекста вызова и количества аргументов выбирается одна из мап и вызываеется функция _callbacks.find(name).second(arg)

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

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

>>972430
И как быть, может указатели на std::function хранить?

Ответы972490972510

12 Апр, 18:03 #132 #972490

>>972488
Какая же ебанная лапша.
Прости Господи.

12 Апр, 18:22 #133 #972510

>>972488
>И как быть, может указатели на std::function хранить?
Чтобы ещё из-за одного уровня indirection больше тормозило?

12 Апр, 18:35 #134 #972528

Помогите найти ошибку http://ideone.com/Ez0l8f пожалуйста. Лаба до затра горит.

Ответы972531972543972656972899

12 Апр, 18:37 #135 #972531

>>972528
https://github.com/sosachbot/cppthreadhat/wiki#Памятка-нюфагу

1689 Кб, 200x150

12 Апр, 18:49 #136 #972543

>>972528
>Java

12 Апр, 21:43 #137 #972649

>>972474
Очевидный boost::asio (годные гайды ищи сам, их вроде не существует)

12 Апр, 21:46 #138 #972656

>>972528
У тебя там delete[] в деструкторе вызывается для обычных указателей, не на динамическую память. Конечно же ошибка

Ответы972794972903972904

12 Апр, 23:12 #139 #972706

почему в gcc 6.3.0 не завезли std::quick_exit ?
error: 'quick_exit' is not a member of 'std'

Ответы972710

12 Апр, 23:22 #140 #972710

>>972706
https://wandbox.org/permlink/Ry0dfudgKLmYOvpQ

13 Апр, 01:00 #141 #972750

>>971128
ЧТО ЕТО ЗА НАХУЙ?!
У меня кровь из глаз полилась. Это бложик фемо-спортсменки-программистки на ютубе? WTF?!

13 Апр, 04:28 #142 #972794

>>972656
либо nullptr пусть пишет

13 Апр, 07:04 #143 #972804

>>971128
теребонькнул

13 Апр, 13:44 #144 #972899

>>972528
Надеюсь на то, что уже сгорела.

13 Апр, 13:48 #145 #972903

>>972656
Там не только в этом проблема. :3

13 Апр, 13:49 #146 #972904

>>972656
Скажем так, delete[] и должен вызываться для обычных указателей - указатели, с которыми работает delete[], ничем не отличаются от указателей, с коротыми работает delete.

Ответы972905

13 Апр, 13:49 #147 #972905

>>972904
Кроме......

13 Апр, 15:55 #148 #972968

Кто-нибудь может сказать, если для работы требуется opengl версии 2, а у меня 4.5, работать не будет? Они не совместимы?

Ответы973110

13 Апр, 19:03 #149 #973110

>>972968
Можете не отвечать, если кому пригодится

http://www.prog.org.ru/index.php?topic=27216.msg196943#msg196943

13 Апр, 22:38 #150 #973245

>>971008
Бамп

13 Апр, 23:50 #151 #973271

Помогите разобраться с gtkmm, хотелось бы книжек или гайдов где всё подробно расписано, гуглил, не нашёл.

14 Апр, 01:37 #152 #973310

У меня программа крашится на выходе, причем иногда она крашится, а иногда, блеать, завершается с кодом 0. Я все деструкторы проверил, вроде память не течет. Что могло пойти не так? Если что, у меня Qt-объекты.

Ответы973315

14 Апр, 02:14 #153 #973315

>>973310
Падает из-за Segmentation Fault. Как его найти-то теперь?

Ответы973317973355

sage 14 Апр, 02:26 #154 #973317

>>973315
valgrind

Ответы973318

14 Апр, 02:27 #155 #973318

>>973317
Я на шиндошс пишу

Ответы973319973320973323973355

sage 14 Апр, 02:29 #156 #973319

>>973318
Это же Qt, скомпилится где угодно.

sage 14 Апр, 02:31 #157 #973320

>>973318
Вот какая-то петушня есть http://www.drmemory.org/

14 Апр, 02:58 #158 #973323

>>973318
Gflags

14 Апр, 06:57 #159 #973339

Как грамотно запретить создание второго объекта класса при соответсвующем дефайне?

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

как-то не очень выглядит по-моему, но ничего другого в голову не приходит

Ответы973341973466973528973738

14 Апр, 07:18 #160 #973341

>>973339
> Как грамотно запретить создание второго объекта класса при соответсвующем дефайне?
Синглтон?

Ответы973359

14 Апр, 08:37 #161 #973355

>>973315
>Как его найти-то теперь?
Дебуг билд и GDB.
>>973318
Можешь взгромоздить любую линукс-ОС и скомпилировать там.

14 Апр, 08:51 #162 #973359

>>973341
Бочку?

14 Апр, 13:53 #163 #973466

>>973339
Городить дефайны внутри конструкторов крайне грязно и выдаёт плохой вкус к коду.

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

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

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

Т.е. в коде создание класса будет чистым, без мусора, а весь мусор будет скрыт в отдельный файл.

Ответы973482973500

14 Апр, 14:20 #164 #973482

>>973466
Блядь, за полчаса даже никто не обосрал меня за то, что я использовал дефайны вместо тайпдефов? Цепепетред, ты меня разочаровал.

14 Апр, 14:49 #165 #973500

>>973466
MultiYoba это неплохая идея кстати. Я через #ifndef просто прятал ряд методов которые не нужны в однопоточном приложении, а можно же просто наследовать в класс Multi и добавить эти методы туда.

Ответы973503973581

14 Апр, 14:51 #166 #973503

>>973500
Только используй тайпдефы, а не дефайны, так надёжнее.

Ответы973512

14 Апр, 14:58 #167 #973512

>>973503
Да тут препроцессор вообще не нужен. Можно просто сделать вроде

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

а базовый класс вообще не трогать

14 Апр, 15:13 #168 #973528

>>973339
const bool MULTIPLICITY=true;

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

Чо сложного-то?

Ответы973532

14 Апр, 15:20 #169 #973532

>>973528
Но компиляция, -DMULTIPLICITY там..

Ответы973536

14 Апр, 15:27 #170 #973536

>>973532
Так бы и сказал. С какого фига то, что может навредить программе, управляется из компилятора, кстати?

Ответы973543

14 Апр, 15:41 #171 #973543

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

Ответы973602

14 Апр, 16:31 #172 #973581

>>973500
Не проще использовать подходящий паттерн?
стратегию, например?

Ответы973632

14 Апр, 16:53 #173 #973602

>>973543
>Так же все делают?
Ни разу не видел такого. Всё то, от чего зависит корректность программы, должно быть в программе.

Иногда пишут объфвления констант перед инклудом, чтобы в инклуде была нужная константа - эта практика лучше.

14 Апр, 17:37 #174 #973632

>>973581
Все паттерны - это рантайм. Зачем ему лишний оверхед?

14 Апр, 19:39 #175 #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 Апр, 07:39 #176 #973896

Можете закидать меня ссаными тряпками. Как подключить spdlog к своему проекту? Я хочу, чтоб эта хуёвина лежала в исходниках моего проекта. Скопировал я её к себе, подключил header, пытаюсь собрать, а visual studio мне такая: "пошёл ка ты нахуй" говорит test\test\spdlog\spdlog.h(12): fatal error C1083: Не удается открыть файл включение: spdlog/tweakme.h: No such file or directory хотя этот файлик в скопированной папке лежит. Я явно что-то делаю не так. Ткните мордой, что именно

Ответы973900974053

15 Апр, 08:16 #177 #973900

>>973896
Тебе нужно прописать пути включений файлов, смотри в настройках препроцессора, если я не ошибаюсь. Если это к тому же не header-only библиотека, тогда тебе нужно в путях поиска линковщика добавить путь к библиотеке (самому .lib файлу) и добавить в список линкуемых библиотек ее (соотвественно my_static_lib.lib)

Ответы973901

15 Апр, 08:25 #178 #973901

>>973900
Это header-only library.
Как-то ебануто выглядит прописывать в путях включения путь к проекту
Если пути включения прописать всё заебись работает

Ответы974049

15 Апр, 16:09 #179 #974049

>>973901
Хм, а относительные пути не поддерживаются? По идее должны, но тут точно ничего сказать не могу.

15 Апр, 16:16 #180 #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".

Ответы974295

15 Апр, 19:08 #181 #974127

Как сделать статический блок в const функции?

virtual string to_string() const
{
if(!_loaded) { // нельзя менять поля в const
_loaded = true;
load()
}
...
}

Ответы974128974276

15 Апр, 19:10 #182 #974128

>>974127
mutable

77 Кб, 807x430

5 Кб, 252x270

15 Апр, 21:02 #183 #974192

Сап сиплюсач.
Ты - последняя надежда.
Нигде не смог найти инфы как это сделать и вообще можно ли так.
Нужно в один датагрид визуалка 2010 засунуть 2 и более таблиц, чтобы они отображались как одна посредством связей как в ацессах, при нажатии на какую-то строку.
Пробовал через запросы, указывал несколько таблиц, заполнял коллекции - либо отображалась одна таблица, либо совсем ломалось.
Возможно ли такое и как это сделать?

Ответы974205975123

15 Апр, 21:40 #184 #974205

>>974192
Попробуй загуглить "c++ forms datagridview несколько таблиц", там вроде достаточно ссылок с возможными решениями.
Сам я не помогу - не шарю.

Ответы974211

15 Апр, 21:48 #185 #974211

>>974205
Дак в том-то и дело, что все уже прогуглено.
Из подобного выдает все онли для шарпа.
Пытался переписать код от шарпа - не смог, одни ошибки.

Ответы974219

15 Апр, 22:09 #186 #974219

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

16 Апр, 01:27 #187 #974276

>>974127
Не понял, объясни.

Ответы974360

16 Апр, 04:52 #188 #974295

>>974053
Я остановился на том, что прописал путь во включения.

16 Апр, 11:26 #189 #974360

>>974276
Метод to_string должен один раз подгрузить ресурсы при том что он const.
Поле mutable bool _loaded вроде работает

Ответы974473

16 Апр, 16:56 #190 #974473

>>974360
Не забудь про thread safety.

16 Апр, 17:58 #191 #974496

Вкатился в кресты, полёт нормальный. До этого полтора года страдал хуйнёй на пистоне. Учу тут http://www.learncpp.com/
Стоит добавить в шапку этот сайт, как по мне.

16 Апр, 19:39 #192 #974538

кто - нибудь реально на крестах работает из всего треда?

Ответы974548974564974599

16 Апр, 20:07 #193 #974548

>>974538
Не думаю. Что бы на них работать нужно быть оче жестким спецом, а как для хобби кресты самое то, я щитаю.

16 Апр, 20:29 #194 #974564

>>974538
работаю крестовым сеньором-помидором, но сижу, в основном, в ридонли.

16 Апр, 20:46 #195 #974572

Тупой первак итт. Если у меня в вордовском доке таблица, и мне нужно считывание строки, при чем в некоторых ячейках много строк.
Если я сделаю так
string S;
while ( getline(in,S))
{
}
У меня будет считываться строка таблицы или строка ячейки?

Ответы974584974605974613

16 Апр, 21:24 #196 #974584

>>974572
Ты бинарную кашу считаешь, а не строки и таблицы.

sage 16 Апр, 22:12 #197 #974599

>>974538
пишу под эмбедед на плюсах
тред чуть менее, чем полностью состоит из легко-прогугливаемых вопросов от школьников и вкатывальщиков. поэтому r-only

16 Апр, 22:24 #198 #974605

>>974572
Открой текстовым редактором вроде Notepad++ и посмотри, что ты читаешь.
Тебе может помочь OLE Automation ебучий кошмар, нирикамендую или какая-нибудь либа примеров не знаю

16 Апр, 22:46 #199 #974613

>>974572
> Если у меня в вордовском доке таблица, и мне нужно считывание строки,

Binary office formats specification.
XML office formats specification.

16 Апр, 23:41 #200 #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. Ебучий язык

Ответы974643974657974662974688974765

16 Апр, 23:44 #201 #974643

>>974642
Вы морально не готовы к крестам.
http://stackoverflow.com/questions/2156305/double-const-declaration

Ответы974648

16 Апр, 23:54 #202 #974648

>>974643
Я в курсах про константный указатель на не константные данные, и не константный указатель на константные данные. Просто нахуй у меня бомбит от этого ебанутого дизайна, ебучие байтоебы, лучше бы константные строки сделали с другим модификатором.

17 Апр, 00:08 #203 #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() то у меня будет хуйня, т.к. объект на стеке и после выхода он наебнется. Получается, единственный варик - создавать еще одно дополнительное поле в классе моего исключения?

Ответы974663974668974886

17 Апр, 00:15 #204 #974662

>>974642
Написал хуйню, ничерта не понимая - виноват язык. Следущий

17 Апр, 00:16 #205 #974663

>>974657
да

17 Апр, 00:20 #206 #974664

Сап, анон.

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

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

Ответы974667974669974670

17 Апр, 00:21 #207 #974667

>>974664
если есть вариант считать даблы из файла каким-нибудь еще более быстрым способом, то будет вообще здорово.

14 Кб, 542x81

17 Апр, 00:22 #208 #974668

>>974657
А если захочешь соединять поля во what(), придётся делать ещё одно поле, потому что результат контатации строк тоже где-то надо хранить

Ответы974685974886

17 Апр, 00:22 #209 #974669

>>974664
Щас я вселюсь в птичку, и узнаю, что там внутри этих тестов и твоего кода.

Ну серьезно, телепаты в отпуске.

Ответы974670

17 Апр, 00:23 #210 #974670

>>974669
>>974664
https://pastebin.com/DZETEjgn

Ответы974690

17 Апр, 00:56 #211 #974685

>>974668
>А если захочешь соединять поля во what(), придётся делать ещё одно поле, потому что результат контатации строк тоже где-то надо хранить

Так на пике же не так?или это такой тонкий подъеб?

17 Апр, 01:05 #212 #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?

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

Ответы974691974702

17 Апр, 01:05 #213 #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 Апр, 01:20 #214 #974690

>>974670
Почему читается по два байта за раз из потока?

Ответы974694974699

17 Апр, 01:25 #215 #974691

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

Причем тут шаблоны и стл? Стл писал математик из мгу, поэтому они такие и хуевые. А по шаблонам есть книги Александреску и Вундервурда где на 1к+ страниц все подробно разъяснено почему так, а не иначе. После прочтения, сможешь запускать программы на этапе компиляции, ибо шаблоны полны по тьюрингу

Ответы974692974693974701

17 Апр, 01:26 #216 #974692

>>974691
> После прочтения, сможешь запускать программы на этапе компиляции, ибо шаблоны полны по тьюрингу
Брайнфук тоже полон. Только на нём не напишешь нихуя полезного. Как и на шаблонах.

Dmitry 17 Апр, 01:28 #217 #974693

>>974691
>по тьюрингу
По фрейду маня.

Ответы974696

Dmitry 17 Апр, 01:28 #218 #974694

>>974690
Буфферизация такая ;)

17 Апр, 01:31 #219 #974696

>>974693
Нахуя что-то писать, если нечего сказать по делу. Лишь бы спиздануть хуйню какую-то.

Ответы974705

17 Апр, 01:33 #220 #974699

>>974690
потому что вторым символом всегда кладется нулевой, или это не так работает?

Ответы974704

17 Апр, 01:34 #221 #974701

>>974691
При том, что в STL посрать негде, везде напиханы ебучие шаблоны, и уж если они их использовали, то обязаны были сделать все юзер френдли. Эти уебки блять пишут СТАНДАРТНУЮ библиотеку, а не васянский высер (тогда я бы понял), при этом обоссываясь на каждом шагу и говнокодя гнилые костыли которые разваливаются к хуям при первом пуке

17 Апр, 01:36 #222 #974702

>>974686
http://en.cppreference.com/w/cpp/memory/memory_resource

17 Апр, 01:37 #223 #974704

>>974699
Ты о чем? У тебя в файле чего изначально записано то?

Ответы974709

Dmitry 17 Апр, 01:39 #224 #974705

>>974696
Оно не юзабельно, еще что сказать?
Зачем на этапе компиляции исполнять, ты поехавший? Вместо динамического бинарника 8кб тащить С++ тулчейн - охуеть

Ответы974710

17 Апр, 01:45 #225 #974709

>>974704
в файле обычные даблы в формате 1.2342, судя по тем тестам, которые у меня есть. В каждой строке n штук, строк также n.

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

Есть вариант с ifstream, но хотелось бы чего-нибудь побыстрее.

Ответы974711

17 Апр, 01:51 #226 #974710

>>974705
>Зачем на этапе компиляции исполнять

Потому что можносовсем отупели со своими байтами, уже в сарказм не могут. То, что так можно делать, как бе намекает, что шаблоны - кривой высер

17 Апр, 02:00 #227 #974711

>>974709
Чем числа в строке разделены, пробелами?
Если да, то читаешь строку из файла
std::string buf;
std::getline(stream, buf);
Инициализируешь этой строкой строковый поток
std::stringstream ss{buf}
Читаешь из строкового буфера числа
while (!ss.eof())
{
float i;
ss >> i;
}

Ответы974716

17 Апр, 02:10 #228 #974716

>>974711
да, пробелами. Мне нужен максимально быстрый вариант, собственно поэтому пришел сюда.

Этот самый быстрый или есть еще круче?

Ответы974720

17 Апр, 02:25 #229 #974720

>>974716
>или есть еще круче

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

Ответы974722974766

17 Апр, 02:34 #230 #974722

>>974720
с fscanf выполняется 12.953 секунд в лучшем случае, с stringstream слишком долго выходит.

Пока что лучший результат получается с ifstream с записью в буфер – 12.713, а потом преобразованием с помощью stod. Это граница или можно еще лучше?

17 Апр, 09:41 #231 #974765

>>974642
твой c_str вообще может указывать на незанятую память, так как приконкатенации возможен реаллок.

17 Апр, 09:50 #232 #974766

>>974720
Бабка надвое скказала. Изначально cin/cout/cerr не буферизуются вообще, так как авторы стандарта предполагали возможность использовать iostream вместе с stdio.h.

Но у поциента не cin, у него считывание из файла, и там такой инхронизации нет. Прочитай свой ответ до конца.

17 Апр, 11:03 #233 #974786

Хочу разобраться с передачей объекта по стеку вызов и в каких случаях нужно писать return std::move().
http://cpp.sh/5ao2f - что за магия тут происходит? Получается делать return std::move() бесмысленно потому что это поведение по умолчанию?

Ответы974788974843974858

17 Апр, 11:07 #234 #974788

>>974786
Точнее даже круче, потому что объект просто создаётся в main.

17 Апр, 13:04 #235 #974840

Решил Branch Prediction протестировать. Сравнил производительность версии с богомерзкими if'ами и няшными указателями на функции. Получилось вот что:

https://pastebin.com/7iawqUSx

Unbranched-версия обычно быстрее на 5-10%, хотя в некоторых случаях Branched-версия вырывается вперёд. Кто может пояснить, почему так? В каких случаях лучше использовать какую версию?

Ответы974860

17 Апр, 13:06 #236 #974843

>>974786
То что у тебя происходит называется RVO и оно более эффективно так как полностью исключается вызов move-конструктора. Стандарт напрямую разрешает компилятору такие оптимизации, даже если move-конструктор имеет сайдэффекты (и такая оптимизация поломает твою программу). В стандарте это упоминается как copy elision (более широкий случай который кроме move-конструктора покрывает еще и copy-конструктор). Если ты нормальный парень и твои move-конструкторы не имеют сайдэффектов, то писать return std::move() нет смысла - просто возвращаешь значение и компилятор или оптимизирует с помощью RVO или вызовет move-конструктор. Использование return std::move() может принудительно вызвать конструктор (если его вызов необходим ради сайдэффектов), но тут наверное от компилятора зависит. Я не думаю что есть что-то что запрещает хитрожопому компилятору просто проигнорировать вызов std::move() в таком случае, хотя хуй знает на самом деле.

Ответы974862

sage 17 Апр, 13:22 #237 #974858

>>974786
Заебали с платиновыми вопросами. На SO объяснили всё уже 100 раз.

17 Апр, 13:24 #238 #974860

>>974840
Посмотрел ассемблерный листинг. Branched-версия генерирует cmp+jbe, Unbranched-версия - cmova и call по QWORD PTR. Кто может пояснить по хардкору за подобное? Говорят, cmov* многократно быстрее, но есть ли где-нибудь полное разжёвывание по полочкам?

Ответы975016

17 Апр, 13:25 #239 #974862

>>974843
Я пока посмотрел на SO, там говорят что надо везде писать return value. Сделал так у себя и посмотрел что с конструкторами происходит. Обнаружилось что если сделать так

return create_object().modify();

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

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

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

17 Апр, 13:43 #240 #974886

>>974668
>>974657

Аноны, помогите. Если просто добавить в класс еще одно поле, то энивей его надо инициализировать в конструкторе, т.к. what() имеет модификатор const и модифицировать строку я уже не могу. Офк можно просто создать свой метод, а не юзать what(), но можно ли как-то канонически написать свое исключение?

Ответы974937

17 Апр, 14:20 #241 #974937

>>974886
Например добавь const поле в класс, а в what() сделай не const ссылку на него (что-то типа std::string& s = const_cast<std::string&>(this->message);) и через эту ссылку измени.

17 Апр, 14:36 #242 #974957

Ананасы, где можно почитать, как работает RTTI?

Ответы974975975023975031

321 Кб, 1280x1024

17 Апр, 14:51 #243 #974969

И так, TODOшки подходят к нулю и 175 тестов стабильно проходятся параллельно в нескольких тредах, можно выкатывать версию 0.0.1.
https://github.com/theanonym/libyoba-perl

Всего ушло около 3 недель и 2500 строк, осталось ещё добавить интеграцию с некоторыми модулями вроде AnyEvent, добавить поддержку событий для лучшей связи с интерпретатором

Ответы974970975093

17 Апр, 14:53 #244 #974970

>>974969
Заебись название

17 Апр, 14:59 #245 #974975

>>974957
А что там читать-то?

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

Ответы975019

17 Апр, 15:47 #246 #975016

>>974860
Наверное здеся http://stackoverflow.com/questions/14131096/why-is-a-conditional-move-not-vulnerable-for-branch-prediction-failure

17 Апр, 15:48 #247 #975019

>>974975
Просили про RTTI, зачем ты рассказываешь про RAII?

Ответы975024

17 Апр, 15:51 #248 #975023

>>974957
Оно зависит от ABI.
В Itanium C++ ABI RTTI устроен довольно просто, информация об иерархии классов "закодирована" в std::type_info (в наследниках от него). https://itanium-cxx-abi.github.io/cxx-abi/abi.html

В MSABI посложнее, но тоже давно отревершено, нагуглишь легко.

Ответы975031

17 Апр, 15:51 #249 #975024

>>975019
А, чёрт. Зачем столько одинаковых аббревиатур? Я так годное место работы чуть не просрал, перепутав STL с SFML.

17 Апр, 15:56 #250 #975031

>>974957
>>975023
Ссылка поточнее https://itanium-cxx-abi.github.io/cxx-abi/abi.html#rtti

17 Апр, 17:23 #251 #975093

>>974969
Что-то у тебя с документацией скудновато, как я посмотрю. Хотя бы Doxygen для приличия влипил (@briedf @param @return и вся хуйня), потом это сложнее будет документировать, ИМХО.

Ответы975269975426

Аноним 17 Апр, 18:20 #252 #975123

>>974192
Как писать на С++ по windows( формы и т.д.)? что читать(какие средства разработки)?

Ответы975127975560

17 Апр, 18:34 #253 #975127

>>975123
qt

17 Апр, 21:28 #254 #975253

>>970816 (OP)
Анон, читаю книгу Страуструпа - Программирование. Принципы и практика использования C++, и чет как-то мне не понятно, это перевод наш косячный, или такая книга и есть.
Стандартную библиотеку предлагают в книге скачать, д.к. она не работает, что бы я не делал. Функция sort() вообще как-то по странному вызывается. В задачах текст написан так, что я не понимаю, что от меня хотят. И это только начало. Кто читал? Скажите, дальше в таком же духе будет? Может есть книги покачественней? Понимаю, что книга от создателя языка, но уже многовато косяков.

Ответы975267975301975321975322975385

17 Апр, 21:41 #255 #975267

>>975253
Читай это.
http://www.learncpp.com/
Автор все топики обновляет, объясняет доходчиво.
Правда на ангельском.
Мне, как новичку в крестах, заходит на заебись.
Потом уже сам буду какие-то книги искать.

17 Апр, 21:44 #256 #975269

>>975093
У меня есть настроенный доксиген, генерирует index.html и прочие страницы, но как его на github.io залить кто-нибудь знает?

Ответы975276

17 Апр, 21:54 #257 #975276

>>975269
Создать сает на Github pages и залить туды.

17 Апр, 22:25 #258 #975301

>>975253
>Стандартную библиотеку предлагают в книге скачать, д.к. она не работает
Шта?

17 Апр, 22:56 #259 #975321

>>975253
Она платная если что.
Но даже так там столько говна, что я бы подумал

Ответы975326

17 Апр, 22:57 #260 #975322

>>975253
Тоже учу кресты по нему. Косяков многовато, но я мазохист и мне нравится разбираться, почему не работает то или иное. По поводу sort() это косяк нового издания, он есть и в оригинале. Чтобы работало, нужно, во-первых, прописать #include <algorithm>, во-вторых, писать так: sort(v.begin(), v.end()), где v - вектор.
По поводу говно "библиотеки", которую Страуструп пихает в начале std_lib_facilities.h, скажу что у меня она тоже не работает. Если тебе нужны векторы, то пиши #include <vector>, правда не забудь включить поддержку стандарта c++11 в своем компиляторе.

Ответы975387

17 Апр, 23:01 #261 #975326

>>975321
Кто платная? Книга? Ссылка на перевод есть в шапке.

17 Апр, 23:04 #262 #975327

Я долбоёб. Как мне две функции под один шаблон запихать?

Ответы975372

18 Апр, 02:07 #263 #975372

>>975327
Гхм, нахуя? Каков будет результат запихивания в один шаблон, по-твоему?

18 Апр, 05:34 #264 #975385

>>975253
Вангую что ты скачал старую библиотеку, а тебе нудна новая .тоже с ней ебся, пока не погуглил на стаковерфлов. Вобщем, гугл в помощ

18 Апр, 06:14 #265 #975387

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

18 Апр, 08:00 #266 #975398

Товарищи, срочно нужна помощь, через час еду в универчик, а лабу переделать так и не успел.
Как проверить на равенство 2 действительных чилса
Вот кусок кода который нужно исправить
while( a>=x1 ) ;
printf("--------------------\n" );

printf("\n" ); printf("\n" );
} ;
Скину 50р на тел. ответившему, больше нет на карте

Ответы975408975411

18 Апр, 09:03 #267 #975408

>>975398
a == b
Как оплатить удобнее?

18 Апр, 09:20 #268 #975411

>>975398
if (epsilon > abs(a - b)) { ... }
где epsilon это необходимая точность, типа 0.00001

18 Апр, 09:58 #269 #975426

>>975093
Так, получилось залить доксиген https://theanonym.github.io/libyoba-perl/annotated.html
Можете посмеяться над моим английским, серьёзные ошибки неплохо бы исправить пока

18 Апр, 14:53 #270 #975560

>>975123
wxWidgets

18 Апр, 16:37 #271 #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) в общем случае?

Ответы975650975731

18 Апр, 16:50 #272 #975635

struct MyStruct{
MyStruct(){}
~MyStruct(){}
int v;
};

MyStruct a[10000000];

На ассемблерном уровне - будет ли у нас вызван конструктор миллион раз, даже если он пустой, или нет?

Ответы975649975651976213

18 Апр, 17:06 #273 #975649

>>975635
Нет, у тебя инициализация v не прописана, конструктор пустой.

Ответы975665

18 Апр, 17:08 #274 #975650

>>975625
1) 1, 7, 13 ; 2, 7, 13; 3, 7, 13 .... 14, 7, 13
Вроде.

18 Апр, 17:12 #275 #975651

>>975635
Зависит от опций компиляции. C -O2/3 скорее всего не будет.

18 Апр, 17:35 #276 #975665

>>975649
Понятно, что конструктор пустой и ничего не будет инициализировано. Но будут ли вызовы конструктора вообще?

Ответы975731

sage 18 Апр, 17:52 #277 #975680

>>975677
Ты правда настолько туп, что не знаешь, как сгенерировать ассемблерный листинг?

Ответы976213

18 Апр, 18:46 #278 #975718

Объясните реализацию графов на с++.

Ответы975729975731975739

18 Апр, 19:01 #279 #975729

>>975718
Нахуй иди, вместе с этой гнидой - >>975677

18 Апр, 19:02 #280 #975731

http://cpp.sh/9ks32
блядь блядь блядь блядь блядь блядь блядь блядь блядь блядь блядь блядь блядь
>>975625
1. Прочти свой код и выполни его без помощи компутера.
2. Не знаю.
3. Не знаю.
4. Иди нахуй со своей домашкой.
>>975665
Бабушка надвое сказала. Компилятор волен делать всё, что угодно, и конструкторы он может вызывать, а может и не вызывать, если видимое поведение не меняется (сторонние эффекты в конструкторе к видимому поведению не относятся). То есть, если у тебя в конструкторе только вызов какой-то функции, которая на состояние объектов (cin/cout и т.д. не в счёт) не влияет - компилятор может вобще не вызывать конструктор.
>>975718
struct node {
T payload;
vector<node*> edges;
} - если направленный. Если ненаправленный - чуть сложнее.

Ответы975737976213

18 Апр, 19:06 #281 #975737

>>975731
>http://cpp.sh/9ks32
>bool c[2];
Хаха.
Ну вы и убогие все же.

Ответы975739975765

18 Апр, 19:08 #282 #975739

>>975718
>http://cpp.sh/9ks32
Чёйта? Там инта в инициализации не хватает, если про это.
>>975737
Это ты в треде с базами срёшь?

Ответы975745975765

18 Апр, 19:11 #283 #975745

>>975739
Я вездесущий и вездесрущий.
Проблемы?

Ответы975753

18 Апр, 19:15 #284 #975753

>>975745
Да не, нормально всё.

Ответы975756

18 Апр, 19:17 #285 #975756

>>975753
Вот и умничка.
шлепнул одобрительно по заднице

18 Апр, 19:27 #286 #975765

>>975739
>Там инта в инициализации не хватает, если про это.
Вот именно. На кой ляд вообще нужны эти списки, в которых можно указывать не все члены? Пердолинг такого же рода, как и дефолтные аргументы - специально нужно ранжировать аргументы по вероятности их использования.
>>975737
Есть альтернатива? Инбифо bitset.

Ответы975767975769975773

sage 18 Апр, 19:29 #287 #975767

>>975765
Он просто взял рандомную строку из твоей программы и подписал
> Хаха.
> Ну вы и убогие все же.

Нахуй на такое вестись?

Ответы975770975797

18 Апр, 19:30 #288 #975769

>>975765
>bitset.
Если место важно кеш там и тд - то да.
Но это всё смешно в любом случае :3

18 Апр, 19:30 #289 #975770

>>975767
>Нахуй на такое вестись?
Потому что дебилы вроде тебя, например
Так-то.

18 Апр, 19:32 #290 #975773

>>975765
То есть - можно? У меня не скомпилилось.

Ответы975777975797

1188 Кб, Webm

18 Апр, 19:33 #291 #975777

>>975773
>У меня не скомпилилось.
Лучший тред.

18 Апр, 19:42 #292 #975797

>>975767
Про bitset - это тоже шутка, знаешь ли. В высокоуровневом языке использовать bitset - это охуевшим быть.
Так что ты тоже повёлся.
>>975773
В этот раз без оскорблений, в следующий раз будьте внимательнее.
http://cpp.sh/2lcb

Ответы975800975801

306 Кб, Webm

18 Апр, 19:44 #293 #975800

>>975797
>с++
>высокоуровневом языке

18 Апр, 19:45 #294 #975801

>>975797
Понятно. Можешь сходить пожаловаться к C-богам. Мы тут только лабы первокурам решаем.

18 Апр, 19:47 #295 #975807

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

Ответы975810975812975813

18 Апр, 19:49 #296 #975810

>>975807
>рекурсивного
Ясно.

Ответы975811

18 Апр, 19:50 #297 #975811

>>975810
Это моя идея. Да и на итог она мало влияет.

Ответы975815

18 Апр, 19:50 #298 #975812

>>975807
Братишка, спроси у своих сокурсников. Никому не интересно ваши лабы решать. Кроме того, тут кроме меня и пары троллей, никого нет.

Ответы975817

sage 18 Апр, 19:50 #299 #975813

>>975807
Ни хрена не понял из твоего описания.

Ответы975817

18 Апр, 19:51 #300 #975815

>>975811
>моя идея
Соболезную.

18 Апр, 19:55 #301 #975817

>>975812
Я прошу только помощь с алгоритмом.
>>975813
Имеется дерево, у каждой вершины есть имя. Хочется провести поиск по этим вершинам и отобрать только те, которые имеют определенное название. То есть получить новое дерево-результат. Но, возможно, из дерева результата придется еще раз выбрать подходящие уже под другой шаблон вершины.

Ответы975819975820

sage 18 Апр, 19:57 #302 #975819

>>975817
Так если результаты складываются в новое дерево, в чём проблема потом по нему искать?

Ответы975823

18 Апр, 19:57 #303 #975820

>>975817
Поиск в глубину ищи (DFS).

Ответы975823975825

18 Апр, 20:00 #304 #975823

>>975819
Есть у меня исходное дерево. Я закидываю его в дерево-ответ. В случае если ни одного запроса не пришло, выдано будет оно. Теперь я хочу искать по этому дереву. Но результаты будут складываться в него же. Причем хотелось бы удалить старые ссылки, но как разобрать, что результат нового поиска, а что старого?
>>975820
Это не принципиально, как по мне.

Ответы975829

18 Апр, 20:01 #305 #975825

>>975820
Так, я чет задумался, что это вроде и есть это, пошел погуглил. Это и есть тот обход которым я пользуюсь.

18 Апр, 20:03 #306 #975829

>>975823
Зачем скидывать в это же дерево, если можно скидывать в другое?

Ответы975834

18 Апр, 20:06 #307 #975834

>>975829
И каждый раз создавать новое дерево? И как это реализовать то? У меня это все в классе выполняется, где дерево-ответ является свойством объекта. Хотя возможно если завести новое дерево-буфер, перед всем шоу его очистить, туда перекинуть ответы, а потом дереву-результату присвоить дерево-буфер, то все будет хорошо. Вот так видимо сделать можно.

Ответы975848

18 Апр, 20:16 #308 #975848

>>975834
> а потом дереву-результату присвоить дерево-буфер
return дерево-буфер;
никак?

Ответы975855

18 Апр, 20:22 #309 #975855

>>975848
Что-то типа этого я и говорил. Хотя идея создавать дерево-буфер внутри функции поиска несколько облегчит код, спасибо.

Ответы975860

sage 18 Апр, 20:30 #310 #975860

>>975855
псевдокод https://pastebin.com/W6FWERL4

6 Кб, 830x187

18 Апр, 20:45 #311 #975879

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

Ответы975887975895976055

sage 18 Апр, 20:47 #312 #975887

>>975879
Блядь, как вы все заебали сюда писать всякой хуйнёй.
Лаба не конпилируется, двач, памаги!!1
MSVS показал нипанятное акошко, двач, памаги!

Идите нахуй.

18 Апр, 20:50 #313 #975895

>>975879
Зашёл в бинарник - там страна ассемблера, "source not available". Обычно хватает прожать несколько раз shift-f11, если будет реагировать вообще.

18 Апр, 23:55 #314 #976055

>>975879
ты в глаза долбишься или куда?
тебе английским по чёрному написано, что сырцы на бинарник в дебаг метаинфе не залинкованы: открывай стек, смотри, где ты находишься (какая DLL или либа) и перекомпиливай её с PDB. либо же у тебя визуалка PDB не видит. откда такие дауны вылазят?

Ответы976097

19 Апр, 01:21 #315 #976097

>>976055
Да эти макаки в студии не могут найти эти ключи.
А без студии хелло ворд не напишут.

Тру стори.

Ответы976115

19 Апр, 01:25 #316 #976101

Анон, поскажи добротный бесплатный профайлер под MSVC но без использования студии (проект CMake-ом собирается).

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

Ответы976102976128976135

19 Апр, 01:27 #317 #976102

>>976101
CodeXL жи.

Ответы976103

19 Апр, 01:29 #318 #976103

>>976102
>CodeXL
Херасе.
Завтра испробую. Спасибо.

19 Апр, 02:21 #319 #976115

>>976097
Сейчас набежит местный школьник и начнёт боготворить MSVS и обвинять тебя в использовании vim.

Ответы976130976169

19 Апр, 03:27 #320 #976128

>>976101
хуя, а как ты valgrind'ом умудряешься профилировать?

Ответы976129

19 Апр, 03:28 #321 #976129

>>976128
callgrind, cachegrind

19 Апр, 03:31 #322 #976130

>>976115
ещё один аутист: он говорит о том, что школьники не найдут нужный флаг в msvc, а ты vim впихиваешь зачем-то

19 Апр, 03:39 #323 #976135

>>976101
в msvc 2017 встроена поддержка cmake. импортишь и профилируешь прямо из визуалки.
второй вариант для эстетов -- попердолится и запустить сборку с cmake, но с визуальным компилятором (включив нужные флаги чтобы метаинфа была). и уже потом аттачиться к приложению и профилировать его визуалкой.

19 Апр, 09:17 #324 #976169

>>976115
ты меня запомнил!

19 Апр, 09:45 #325 #976175

ананасы, есть проект на Qt Widgets. получится его задеплоить на андроид? специфичные либы, вроде бы, не использовал, только буст чуть-чуть.

Ответы976215976217

19 Апр, 10:55 #326 #976213

>>975635
>>975731
Вообщем нашел ответ сам.

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

>>975680
Вон из треда, долбоеб, не хотел тебе отвечать, потому что ты даун, но всё же покормлю. Твои кукареки и "выебоны" про ассемблерный листинг - полная хуйня. Листинг никогда не ответит на вопрос о стандарте.
Студент, тебе что, на паре препод показал как смотреть сгенеренный код и теперь выебываешься на бордах, да?

Ответы976315

19 Апр, 11:01 #327 #976215

>>976175
Да, только интерфейс пойдет по пизде, инфа 100%.

Ответы976216

19 Апр, 11:02 #328 #976216

>>976215
А от буста либо избавляться, либо ебаться с компиляцией.

Ответы976235

19 Апр, 11:03 #329 #976217

>>976175
мона, только он может уебанско выглядеть на маленьком экране

19 Апр, 11:35 #330 #976235

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

19 Апр, 11:56 #331 #976246

У меня есть необходимость в функции, которая будет обходить каждый элемент структуры, а потом выполнять с каждым элементом какое-то действие. Но это действие каждый раз разное. Как такое реализовать на плюсах? Мне нужно передавать функцию в функцию?

Ответы976252976264

19 Апр, 12:05 #332 #976252

>>976246
перегрузи std::get для каждой функции и хуярь std::apply

Ответы976256

19 Апр, 12:08 #333 #976256

>>976252
*для каждой структуры. Надо проснуться.

19 Апр, 12:24 #334 #976264

>>976246
Нахуя, если ты можешь передать в функцию саму структуру?

Ответы976269

19 Апр, 12:32 #335 #976269

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

Ответы976769

19 Апр, 13:21 #336 #976287

Как запилить ветвление в функции?

Ответы976298976302976771

19 Апр, 13:52 #337 #976298

>>976287
Что?

19 Апр, 13:56 #338 #976302

>>976287
jmp
j(ne|e|nz|z|c|nc|...)
b(ne|eq|cs|cc|...)

19 Апр, 14:20 #339 #976315

>>976213
>Листинг никогда не ответит на вопрос о стандарте.
Цитирую твой вопрос, кусок дебила:
> На ассемблерном уровне - будет ли у нас вызван конструктор миллион раз

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

Теперь иди на хуй.

19 Апр, 14:27 #340 #976319

а ведь ребята в Qt стараются, интересные вещи делают. Только рекламируют совсем хуево :(

Ответы976323976419

19 Апр, 14:32 #341 #976323

>>976319
Родили уже QML с кривыми компонентами. Особенно пиздатая фича вышла в 5.8 (которую в 5.8.1 поправили, вроде как) - кэкирование компонентов, грузишь такой правки - оп, а их нихуя и нету, оказывается.

Ответы976419

19 Апр, 15:16 #342 #976336

>>970816 (OP)
Пишу свой сервис для винды, он должен использовать .dll для работы с камерой. Пока это консольное приложение - все отлично работает, но если переделать на WinService, то будет немедленно выкидывать с Error:1053, при попытке запустить сервис. Если закоментировать методы из .dll, то сервис регистрируется нормально, но если добавить хоть что-то из нее - неудача. Может надо как-то специфично подключать .dll при написания сервиса или что? Почему все работает в консольном варианте?

Ответы976383

13 Кб, 575x338

19 Апр, 16:27 #343 #976359

>>970816 (OP)
Сап, почему при использовании свитча выполнение красной скобки игнорируется? Без свитча все работает

Ответы976401976772

19 Апр, 17:30 #344 #976383

>>976336
Уже не актуально, проблема была в правах доступа.

19 Апр, 18:18 #345 #976401

>>976359
>> cout
>> gets
Ты уж что-то одно выбери для начала

Ответы976412

19 Апр, 18:30 #346 #976412

>>976401
Это настолько принципиально?

Ответы976416976704

19 Апр, 18:34 #347 #976416

>>976412
> Это настолько принципиально?
нет, продолжай в том же духе. ты всё правильно делаешь

19 Апр, 18:38 #348 #976419

>>976319
>>976323
а ещё в 5.8 запилили oauth2 (https://doc.qt.io/qt-5/qtnetworkauth-index.html), только с ним можно делать только get запросы. для post надо выковыривать из инстанса bearer, вставлять его в заголовки ручками в network manager и только потом делать запрос

Qt 20 Апр, 01:27 #349 #976652

Пасаны, мне нужно для лабы рисовать один график, а при нажатии кнопки и движении мышки перемещать некоторый элемент на графике. Для этого я наследовал класс от QGraphicsView, рисую в методе update(), а в методах mousePressEvent() и mouseMoveEvent() отслеживаю мышку. Проблема в том, что если вызывать update внутри мойкласс::mouseMoveEvent, то двигается вся сцена, весь QGraphicsView. Если не вызывать, то все хорошо, только иначе картинка не меняется. Как это обойти? Кнопки, сигналы и слоты обрабатываются корректно, проблема только в mouseMoveEvent, как будто он там изменяет параметры виджета.

Ответы976672

20 Апр, 02:34 #350 #976672

>>976652
> Лабы идут на хуй

20 Апр, 06:40 #351 #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 Апр, 07:23 #352 #976713

>A: Ни один язык не идеален, но по совокупности киллер-фич C++ оставляет все остальные языки позади. Вот основные три:
>Мощь
Блядь, проиграл. Ладно если бы под этим словом понималась скорость, но она пунктом выше.

Ответы976796

20 Апр, 10:58 #353 #976769

>>976269
То ли ты хочешь сделать своб функцию обхода массива, то ли ты хочешь структуру. Охуительная история.
Напиши минимальный код, по которому видно задачу и проблему.

Ответы976819

20 Апр, 10:59 #354 #976771

>>976287
Родина дала нам if else switch case .

20 Апр, 11:01 #355 #976772

>>976359
Похоже на UB выше в коде.

20 Апр, 12:00 #356 #976796

>>976713

> Очередной петоно-дебил не понимает, что с прямым доступом к памяти заведомо можно реализовать любую другую фичу из любого языка

Ответы976801976802976812976815

20 Апр, 12:11 #357 #976801

>>976796
Тьюринг-полные у нас даже НАМы и Brainfuck-и.

Вместо мощи можно написать про метапрограммирование и SFINAE.

20 Апр, 12:15 #358 #976802

>>976796
я про само слово. МОЩЬ. МОЩНЫЙ язык программирования.

20 Апр, 12:55 #359 #976812

>>976796
Ну реализуй мне честный, не консервативный, GC. Интересно, как тебе тут "прямой доступ к памяти" поможет отличить указатели от данных.

Ответы978114

20 Апр, 12:58 #360 #976815

>>976796
Чтоб тебе было не скучно: GC должен быть компактифицирующий.

Ответы978114

20 Апр, 13:07 #361 #976819

>>976769
https://pastebin.com/0Z4siSd9
Что нужно сделать, чтобы каждый раз не писать этот for, а только конкретное действие?

Ответы976823976913

20 Апр, 13:15 #362 #976823

>>976819
Нужно объявить Tree_node инстансом тайпкласса Traversable и реализовать для него какую-нибудь функцию из Traversable, например, foldr

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

И у тебя в Worker принимается зачем-то по значению

Ответы976831976913

20 Апр, 13:26 #363 #976831

>>976823
>функцию из Traversable, например, foldr
Бля, облажался. Ну ладно.

20 Апр, 13:52 #364 #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]? Раньше я думал, что она статически выделена в функции и уже есть в экзешнике, экзешник загружается в память и память под этот массив уже выделена в функции, ещё до её вызова. Но, поебавшись с указателями пришел к выводу, что всё не так просто. Что происходит при последующем рекурсивном вызове этой функции?
Я раньше байтоебством не занимался.

Ответы976846976910976920

20 Апр, 14:01 #365 #976846

>>976839
https://godbolt.org/g/gHhu2O

Ответы976869976875976910

20 Апр, 14:27 #366 #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]; то будет расходоваться память из кучи и программа просто начнет жрать память?

Ответы976875976910

20 Апр, 14:43 #367 #976875

>>976846
>>976869
Точно так же съедает 3 мегабайта и выпадает в segmentation fault.

Ответы976892976910

20 Апр, 15:18 #368 #976886

Подскажите дурачку, как реализовать метод GetString в таком классе, что б можно было через cout нормально выводить стороку
https://pastebin.com/ej31QGGz

Ответы976893976894

20 Апр, 15:26 #369 #976892

>>976875
Скорее всего printf не находит терминирующего нуля.

Ответы976910

20 Апр, 15:27 #370 #976893

>>976886
Нужно не GetString реализовывать, а << перегружать для ostream и твоего класса.

Ответы976897

20 Апр, 15:32 #371 #976894

>>976886
https://www.tutorialspoint.com/cplusplus/input_output_operators_overloading.htm

Ответы976897

20 Апр, 15:40 #372 #976897

>>976893
>>976894
спасибо,

а других способов нет? просто мне нужно пока что как-то без этого реализовать
//Создайте метод GetString(), который обеспечит доступ к хранящейся строке.
//С помощью cout и метода GetString() распечатайте строку объекта str

Ответы976899

20 Апр, 15:41 #373 #976899

>>976897
cout << gno.GetString()

Ответы976901

20 Апр, 15:44 #374 #976901

>>976899

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

я так пробовал вот что вышло, что это значит хз

Ответы976902

20 Апр, 15:45 #375 #976902

>>976901
Покажи весь код.

Ответы976942

10237 Кб, Webm

20 Апр, 16:02 #376 #976910

>>976892
>>976875
>>976869
>>976846
>>976839
Всё работает, выпадает потому что стек заканчивается. Когда объявляю массив через new, то завершается через 43000 рекурсивных вызовов независимо от размера массива, когда статическим массивом, то чем больше массив - тем меньше итераций, очевидно быстрее жрется стек. Исправьте, пожалуйста, если я не прав.
В микроконтроллерах использование памяти: программный код, стек и куча такое же или отличается?

Ответы976920

20 Апр, 16:07 #377 #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);
}

Ответы976917

20 Апр, 16:12 #378 #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 Апр, 16:15 #379 #976920

>>976839
>int TestAr() {
>\tchar chararray[50];
>\tprintf("%s", chararray);
Использование неинициализированной памяти, undefined behaviour.
Компилятор вообще не обязан выделять место под chararray, так как заведомо известно, что в нём будет, и вместо этого может подставлять адрес строки из экзешника в каждый вызов printf.
>Раньше я думал, что она статически выделена в функции и уже есть в экзешнике
Выделяется на стеке на каждый вызов. Если напишешь static - будет выделяться на стеке один раз, перед вызовом main.
>Что происходит при последующем рекурсивном вызове этой функции?
Заканчивается место на стеке и хуяк.
>>976910
>когда статическим массивом, то чем больше массив - тем меньше итераций, очевидно быстрее жрется стек.
Ты путаешь static с локальной переменной (выделяется на стеке)

Ответы976925

20 Апр, 16:19 #380 #976925

>>976920
>Ты путаешь static
Я понял про что ты, но до этого еще не дошел. Я не правильно употребил термин "статическим" - здесь это значит только то, что он выделен не из динамической памяти, а объявлен заранее.
>Использование неинициализированной памяти, undefined behaviour.
Это было сделано, чтобы посмотреть, а не один ли массив будет использоваться для всех вызовов. В оконечном тесте уже убрал строку.
>Выделяется на стеке на каждый вызов. Если напишешь static - будет выделяться на стеке один раз, перед вызовом main.
И тогда все вызовы функции будут фактически оперировать с одним и тем же массивом, постоянно висящим в памяти, но видимым только из этой функции - я правильно понял?

Ответы976939

20 Апр, 17:03 #381 #976939

>>976925
>Это было сделано, чтобы посмотреть, а не один ли массив будет использоваться для всех вызовов.
Как проверить, выделяет ли компилятор память или нет:
- в int main выводишь адрес любой глобальной переменной ( %p в printf, & перед соотв. аргументом)
- делаешь фиксированное число вызовов (статично хранишь число, чтобы контроллировать глубину рекурсии)
- после достижения предельной глубины выводишь адрес той же глобальной переменной.

Потом делаешь такой же код, но в нём делаешь что-то посложнее, чем printf, чтобы компилятор подумал, что память выделять таки надо. Если разница между двумя адресами увеличилась - значит, компилятор экономит память в первом случае.
>И тогда все вызовы функции будут фактически оперировать с одним и тем же массивом, постоянно висящим в памяти, но видимым только из этой функции - я правильно понял?
Да.

20 Апр, 17:08 #382 #976942

>>976902
да я уже разобрался...
идиотская была ошибка - забыл () перед вызовом функции

20 Апр, 17:27 #383 #976953

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

Ответы976979

20 Апр, 18:17 #384 #976979

http://cpp.sh/3u7b6
Ну и как мне написать инициализацию массива-члена? Голову сломал.

>>976953
Если тебе нужен конструктор из базового класса, он должен быть либо протектед, либо публик. Если это не так, исправь это.

Ответы976997

20 Апр, 18:45 #385 #976993

Я вот чет не могу смекнуть,
когда пишут:
Создайте глобальную функцию
Хуй Hui(Хуй, Хуй);
которая принимает два объекта класса Хуйпо значению и
возвращает объект класса Хуй,

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

или так

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

Поясните кому не лень< плиз.

20 Апр, 18:57 #386 #976997

>>976979
Проще взять std::array

Ответы977018

61 Кб, 791x623

20 Апр, 19:19 #387 #977011

С помощью какого алгоритма можно это реализовать?

Ответы977045977505977510977570977771978161

20 Апр, 19:20 #388 #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, там же лежит мейн.

Ответы977021977125

20 Апр, 19:49 #389 #977018

>>976997
Канеш проще, только я хочу сделать наиболее простым путём. Какого ляда C++ считает, что список инициализаций - это список присваиваний? Бесит.

20 Апр, 19:58 #390 #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

Ответы977125

20 Апр, 21:13 #391 #977045

>>977011
Жадным можно.

21 Апр, 00:38 #392 #977125

>>977021
>>977012
Нашел ошибку, оказывается растягивать вектор можно только так array1.insert(array1.end(), 4);

Ответы977176977332

21 Апр, 07:35 #393 #977176

>>977125
resize еще

Ответы977490

21 Апр, 16:26 #394 #977332

>>977125
>растягивать вектор можно только
Не только.

Ответы977490

21 Апр, 18:12 #395 #977384

Ананасы, нужна какая-нибудь маленькая библиотечка, могущая вычистять интегралы. Не подскажите такую?

Ответы977496

21 Апр, 18:35 #396 #977404

Короче, тут намедни прочитал книг 6 по паттернам, а мен все мало, блять. Есть какие-нибудь годные еще, кроме GoF, POSA и Software Architecture in Practise?

Ответы977435977439

21 Апр, 18:57 #397 #977423

синтаксическая ошибка во встроенном коде на языке ассемблера в "код операции"; обнаружено "newline"

эта херня появилась после того, как я сделал виртуальным 1 из методов класса, что это вообще?

Ответы977424

21 Апр, 19:01 #398 #977424

>>977423
хотя это между собой не связано..

21 Апр, 19:40 #399 #977435

>>977404
>прочитал книг 6 по паттернам
> GoF
Как ты не заснул? Я засыпаю на второй странице чтения этого.

sage 21 Апр, 19:51 #400 #977439

>>977404
> книг 6 по паттернам
Ебать дебил.

21 Апр, 20:26 #401 #977451

Сап!
Я программист уже 4 года профессионально.
Программирую на руби. На досуге увлекаюсь Erlang, Clojure, C/C++. На руби уже надело, в основном рутина, ничего интересного. Хочется думать и нести радость людям написав какой нибудь там автопилот например.
Подскажи, требуются ли в рашке программисты на C/C++ или это уже утопия и все дрочат на go/ruby/php ?

101 Кб, 798x931

21 Апр, 20:53 #402 #977460

А какой/какие алгоритмы применить здесь?

Ответы977505

21 Апр, 21:44 #403 #977490

>>977176
>>977332
Я имею в виду, что нельзя вектор длины 7 Vector1[7]

21 Апр, 21:58 #404 #977496

>>977384
Аналитически или численно? Фгугл.

21 Апр, 22:23 #405 #977505

>>977011
Точнее: перебором с O(n). Если дашь ссылку на судью, я тебе сбацаю.
>>977460
Симулируй работу парикмахера и прихода/ухода всех этих идиотов. Натурально: берёшь и релизовываешь конечный автомат (состояние содержит текущее время, очередь на это время с фасонами) по условию задачи, больше ничего не надо.

Ответы977708

21 Апр, 22:44 #406 #977510

>>977011
Ещё точнее: можно решить квадратное уравнение двоичным поиском, будет O(log n).

Ответы977712

21 Апр, 23:51 #407 #977530

Товарищи, как MinGW заставить понимать юникод в имени файла, а именно:
ifstream file(_name, ios::binary);
компилятор компиляет только когда _name - char, а мне нужно, чтобы WCHAR (wchar_t, как я понял это одно и тоже) неужели у красноглазых нет юникода в путях?
Нашел на стековерфлов как там кто-то что-то скачал и собрал и вообще руками всё конвертирует в чар и доволен. Но я не верю, что там нет готового.

Ответы977532977542

21 Апр, 23:52 #408 #977532

>>977530
При чём тут красноглазые, если ты на сперме.

Ответы977537

21 Апр, 23:57 #409 #977537

>>977532
MinGW разве начало свое берет не на линуксах?

Ответы977541

21 Апр, 23:59 #410 #977541

>>977537
Это, как следует из названия, минимальный порт GNU-тулз на Windows. Оно не стремится имитировать POSIX-окружения. Для последнего есть Cygwin. И WSL.

Ответы977881

22 Апр, 00:03 #411 #977542

>>977530
Короче, если ты так хочешь utf8 везде, посмотри в сторону nowide. http://cppcms.com/files/nowide/html/index.html
Оно есть в отдельной от boost форме.

Ответы977881

22 Апр, 01:39 #412 #977568

Хочу написать свой REST API на С++. Смотрю на https://github.com/stefanocasazza/ULib
и нихуя не понимаю.

Анон, покажи как писать Web сервисы на крестах в продашоне

Ответы977569

22 Апр, 01:40 #413 #977569

>>977568
Хипсторы в соседнем треде.

Ответы977571

22 Апр, 01:40 #414 #977570

>>977011
Поступление в ШАД?

Ответы978087

22 Апр, 01:41 #415 #977571

>>977569
В смысле? Зашквар писать веб на крестах?

Ответы977572

22 Апр, 01:42 #416 #977572

>>977571
Хочу нагнуть golang-ёбов для этого мне нужна сила плюс и мудрость двоща

22 Апр, 02:02 #417 #977578

Почему небольшой проектик (несколько .cpp и .hpp) в VS конпелируется и запускается, а g++ выдает по main.cpp: undefined reference to %функция_нейм% и отказывается конпелировать ?

Ответы977579

22 Апр, 02:03 #418 #977579

>>977578
too fat

22 Апр, 06:05 #419 #977597

Можно на плюсах и Qt собрать хелловорд весом 11кб или меньше?

22 Апр, 10:47 #420 #977629

ErrorC2400inline assembler syntax error in 'opcode'; found 'newline'

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

Ответы977662977695977718992049

22 Апр, 12:30 #421 #977662

>>977629
Это C++, а не inline assembler тред.

Ответы977693

22 Апр, 13:05 #422 #977693

>>977662
>inline assembler
Ну а я и писал на c++, и вдруг мне в VS высветилась такая ошибка

22 Апр, 13:07 #423 #977695

>>977629
Компилятор какой?

Ответы977717

22 Апр, 13:23 #424 #977708

>>977505
Напиши свою почту gmail.

Ответы978060

22 Апр, 13:27 #425 #977712

>>977510
А вот здесь поподробнее.

Ответы977722978065

22 Апр, 13:33 #426 #977717

>>977695
VS 2015

6 Кб, 228x221

22 Апр, 13:35 #427 #977718

>>977629
>syntax error

22 Апр, 13:39 #428 #977722

>>977712
Хуйню он сморозил, вот тебе подробности.

22 Апр, 15:06 #429 #977771

>>977011
Я придумал за O(m logn) решение, где m - количество выговоров. Просто эмуляция начальника на дереве поиска. Можно парой эвристик ускорить, но в общем случае без ограничений на ответ будет медленно работать.
ещё-один-анон

Ответы977966

22 Апр, 15:22 #430 #977777

Почему нельзя определить массив так так:
Animal zoo[]={Animal(),Cat(),Dog()}
А надо так:
Animal* zoo[]={new Animal(),new Cat(),new Dog()}

Ответы977799977820

22 Апр, 15:44 #431 #977799

>>977777
Это разные объекты, они занимают разное количество памяти.
У тебя, например, базовый объект 8 байт весит, а наследникам ещё int добавили, стало 12.
Выделение памяти под массивы происходит "под линейку" тебе надо 100 объектов Animal, она тебе и выделила эти 800 байт. Понятно, что запихнуть в i слот Dog или Cat не получится.
У указателей же постоянный размер 4-8 байт в зависимости от компилятора. Во втором случае ты выделяешь память на 3 указателя, те уже в свою очередь ссылаются на реальную память, а там уже объекты могут сколько хочешь весить.

22 Апр, 16:04 #432 #977820

>>977777
Потому что это не Java

22 Апр, 16:22 #433 #977826

https://pastebin.com/LuFW7QDe
Вот две функции. Считывание дерева из файла и его удаление. Почему-то команда delete Top_node, где Top_node это указатель созданный через new в другой функции, на вершину не хочет работать и падает с ошибкой памяти. Не знаю, в чем ошибка.

Ответы977827977836

sage 22 Апр, 16:25 #434 #977827

>>977826
valgrind

22 Апр, 16:52 #435 #977836

>>977826
Без рабочего проекта тебе никто не поможет.

Ответы977837

22 Апр, 16:53 #436 #977837

>>977836
В смысле хотите видеть весь код?

Ответы977838977839

22 Апр, 16:57 #437 #977838

>>977837
Да, нужна какая-то программа, на которой это всё падает. И файлы с примерами, если есть.
Тут магов нет, никто с первого взгляда рандомный код не умеет по полочкам расставлять.

Ответы977863

sage 22 Апр, 17:06 #438 #977839

>>977837
И там должен быть файл с лицензией, точнее, с уведомлением, что ты передаёшь код в публичное достояние.

Ответы977863

22 Апр, 17:14 #439 #977844

Вкатывается нюфаг, изучающий ооп.
Есть класс, допустим, classType. В нем, кроме всего прочего, есть конструктор копирования.
В maine есть объекты classType a,b. Где-то задаются параметры объекта a, после чего я пишу b=a. Почему в этом случае конструктор копирования не вызывается, а при classType c=a вызывается?

Ответы977854977857

22 Апр, 17:27 #440 #977854

>>977844
http://stackoverflow.com/questions/5368258/the-copy-constructor-and-assignment-operator

sage 22 Апр, 17:36 #441 #977857

>>977844
>Вкатывается нюфаг, изучающий ооп.
Другого места не нашёл, куда вкатиться? Почему этот тред?

22 Апр, 17:48 #442 #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
Вся беда в процедуре удаления дерева, которое создавалось конструкцией нью. В этой функции есть отладочный вывод, который показывает, что вроде как ни одного делита не выполняется, но функция завершается несколько раз, кроме самого последнего. Как такое возмжно я не понимаю

Ответы977863977879977891

22 Апр, 17:50 #443 #977863

>>977838
>>977839
>>977861
Про лицензию забыл. Но вы можете пользоваться так, чтобы под GNU подходило, обязательно 3 версии.

438 Кб, 811x627

sage 22 Апр, 18:25 #444 #977879

>>977861
int main()
{
Tree_node Top;
Cleaner(&Top)
}

void Cleaner (Tree_node * Top_node)
{
delete Top_node;
}

Ответы977891977892

22 Апр, 18:29 #445 #977881

>>977541
>Оно не стремится имитировать POSIX-окружения. Для последнего есть Cygwin. И WSL.
Ты ебанутый, блять? При чем тут имитация и прочая поебень, речь идет об обычном юникоде в имени файла.
>>977542
Большое спасибо, то, что доктор прописал.

22 Апр, 18:36 #446 #977891

>>977879
>>977861
Бля, он прав. Ты пытаешься статическую память снести.

Ответы977893

22 Апр, 18:37 #447 #977892

>>977879
О, вот и ответ. Спасибо тебе, анон, пускай ты и пидор.
Кстати вопрос. Я вот получил указатель на память. Почему я не могу удалить память по указателю?

438 Кб, 811x627

sage 22 Апр, 18:38 #448 #977893

>>977891
> статическую память

Ответы977894977899

22 Апр, 18:38 #449 #977894

>>977893
Ну что не так?

Ответы977899

sage 22 Апр, 18:40 #450 #977896

Надо в шапку добавить что все пидоры с проблемами в new/delete пиздовали в ньюфаг-тред.

Ответы977899

22 Апр, 18:42 #451 #977899

>>977893
А ну да. Мне из функции возвращается указатель, а я из него достаю объект и помещаю в статическую память. Все, понял, осознал.
>>977894
Это, кстати, не я.
>>977896
Но сегодня вы опоздали.

Ответы977905

sage 22 Апр, 18:55 #452 #977905

>>977899
>в статическую память
В хуическую.

Ответы977921

22 Апр, 19:09 #453 #977921

>>977905
А как она называется?

Ответы977923977926

22 Апр, 19:11 #454 #977923

>>977921
Хуическая.

sage 22 Апр, 19:13 #455 #977926

>>977921
Можно, наверное, называть автоматической. Не совсем корректно, но сойдёт.

22 Апр, 19:19 #456 #977936

>>970816 (OP)
Вкину годный линк для всех. Обсоски ничего не могу ответить про продакшн программирование на крсетах
https://github.com/fffaraz/awesome-cpp

Бляди бля

22 Апр, 19:57 #457 #977966

>>977771
Сможешь реализовать?

Ответы977979

22 Апр, 20:30 #458 #977979

>>977966
Смогу, но не буду.

Ответы977982

22 Апр, 20:52 #459 #977982

>>977979
Жаль.

22 Апр, 22:28 #460 #978039

Немного оффтоп, но думаю тут есть люди, которые могут ответить. Вопрос в контексте windows, хотя за информацию по unix/линупс тоже буду благодарен.
Вот допустим, я написал .dll, функции из которого локальные и статические переменные точно свои для каждого процесса я хочу использовать в нескольких работающих одновременно процессах (допустим, их очень много). В таком случае, если несколько процессов, использующих эту .dll работают одновременно, то для каждого процесса в его виртуальную память (далее ВП) загружается своя копия .dll, и при создании каждого процесса из исполняемого файла загрузчик вписывает адреса вызова функций в секцию с таблицей импорта? Или загрузчик достаточно умён, чтобы использовать единожды загруженную .dll между несколькими процессами? Или такое верно только для системных .dll, а для пользовательских - только MMF в отдельном гигабайте ВП?

Ответы978053

22 Апр, 22:43 #461 #978053

>>978039
Главный вопрос - зачем вам понадобилось это знание?

Ответы978058

22 Апр, 22:48 #462 #978058

>>978053
Пишу курсовую. Один из второстепенных аспектов - цикл жизни процесса.

Ответы978068

22 Апр, 22:50 #463 #978060

>>977708
yobberocS.wichANUSg\lGmailPUNCTUMcoXLvm

Аноним 22 Апр, 22:57 #464 #978065

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

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

Ответы978083

22 Апр, 23:03 #465 #978068

>>978058
Одна и та же, а потом механизм copy-on-write.

22 Апр, 23:25 #466 #978083

>>978065
Всё бы ничего, но идея, которая стоит за решением, не понятна.
Например,
>и если оно больше числа пассивных накачек - перебор продолжается
откуда следует это?
И вот если я оценю минимальное и максимальное количество выговоров какой-то эвристикой, то как делать перебор между этими значениями? Выходит уравнение с 200к неизвестными, не совсем ложится под понятие перебора.

Ответы978085

Аноним 22 Апр, 23:37 #467 #978085

>>978083
>откуда следует это?
Могу доказать теорему о том, что если выполняется упомянутое условие (число необходимых прямых меньше= числа пассивных), то оно выполняется для всех больших чисел.
>И вот если я оценю минимальное и максимальное количество выговоров какой-то эвристикой
Минимальное - это 1. Максимальное - это тупо 200000, для двоичного поиска это не важно, число итераций - 18 (262144=2^18).
>как делать перебор между этими значениями?
Двоичный поиск, блет. Значения отсортированы по критерию выполнимости искомого условия - для всех значений начиная с некоторого оно выполняется.

Пиши на почту, если хочешь.

Ответы978096978111

22 Апр, 23:41 #468 #978087

>>977570
Очень врядли.
https://yandexdataschool.ru/admission
Прошло сильно больше 5 часов.

22 Апр, 23:57 #469 #978093

https://contest.yandex.ru/contest/4317/enter/ - и вообще интерфейс другой.

Ответы978105

23 Апр, 00:02 #470 #978096

>>978085
Не понял. Я, кстати, другой анон. У меня жопа не горит задачу решить, просто хочу понять.

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

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

>Двоичный поиск, блет. Значения отсортированы по критерию выполнимости искомого условия - для всех значений начиная с некоторого оно выполняется.
Вот это я не понял. Пусть я отсортирую всех программистов по убыванию производительности. Это ведь имелось в виду? Если нет, то прошу пояснить. И у меня на текущей итерации n выговоров. Что дальше происходит?

Ответы978105

23 Апр, 00:10 #471 #978103

Пасаны, как по кашруту помечать функции как deprecated и obsolete? Я тут решил угореть по качественному коду, комментирую функции в хэдерах, пишу по гайдлайнам

23 Апр, 00:12 #472 #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 нету?

Ответы978111

23 Апр, 00:20 #473 #978111

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

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

>Что это за C++, если в нём iostream нету?
Видимо, это C.

Ответы978124

23 Апр, 00:25 #474 #978114

>>976812
Братан, Аппель (или ещё кокой-то петушок) больше 30 лет назад придумал как это делоть. Зогугли.
>>976815
А это к проблемам самого языка и невозможности реализации чего-то как относится? Сделой если не лох?

23 Апр, 00:38 #475 #978124

>>978111
> Я думал, что перебор по ответу,
Ты можешь накачать всех программистов за 200000 выговоров: y>1. Можно точнее, но не нужно.
>Ну вот тут основной вопрос, как перебирать.
Двоичный, мать его в сраку, поиск, по отсортированному, якорь им в ебало, значениям числа выговоров. Я уже всё разжевал, осталось только головой подумать.

Ответы978127

23 Апр, 00:48 #476 #978127

>>978124
Ё, там не 200к выговоров. На каждого чувака может быть больше одного. Т.к. нам нужно накачивать на числа до 10^9, то и число выговоров может быть близко к этому числу. Ну запилить на 100кк выговоров пример можно не напрягаясь. А значит, что по способу выше я не смогу позволить себе даже одну итерацию сделать.
Всё таки это олимпиадная задача, а не энтерпрайз параша, которая нас всех ждёт. Можно было бы хотя бы попытаться объяснить.

Ответы978141

23 Апр, 01:09 #477 #978141

>>978127
>На каждого чувака может быть больше одного.
Количество чуваков < 200000, y>=1. То, что x и y могут быть большими - не важно ВООБЩЕ.
Даже если бы оно было бы 10^9 - это 30 итераций вместо 18, в каждой из которых я делаю фиксированное число вычислений.
>Всё таки это олимпиадная задача, а не энтерпрайз параша, которая нас всех ждёт. Можно было бы хотя бы попытаться объяснить.
Залупанцу надо задачки преподу сдать, и он этот тред читает. Я и так же объяснил, как мог, чтобы и вы тоже подумали.

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

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

Разумеется, я могу разжевать ещё сильнее, но это уже неинтересно.

Ответы978143978238978239

23 Апр, 01:10 #478 #978143

>>978141
> эффектом y-x
Наоборот: x-y.

23 Апр, 01:41 #479 #978159

Вопрос.
Что есть за тип T[][] ?
Это T или T* ?

Ответы978160978164978172

23 Апр, 01:41 #480 #978160

>>978159
Или вообще T?

23 Апр, 01:42 #481 #978161

>>977011
Мне кажется, тут нужон симплекс метод.

Ответы978165

23 Апр, 01:44 #482 #978164

>>978159
>Что есть за тип T[][] ?
Ничего не есть.

Ответы978171

23 Апр, 01:44 #483 #978165

>>978161
А вообще, это вроде примитивный матан с системой линейных уравнений.

Ответы978168

23 Апр, 01:52 #484 #978168

>>978165
В общем то это и есть симплекс метод. Главное правильно определиться с тем что есть что.

23 Апр, 01:59 #485 #978171

>>978164
What is it?
Nothing is...

23 Апр, 02:01 #486 #978172

>>978159
>Что есть за тип T[][] ?

Это ни хрена не тип. T[][6] - это тип. T[][6][5] - это тип. T[] - это тип. *T[] - это тип. А T[][] - это не тип.

Ответы978174

23 Апр, 02:02 #487 #978173

Dear C++ programers..
What language are you use for comments in your programs?

Ответы978175978183

23 Апр, 02:03 #488 #978174

>>978172
А что такое T[][] ?
Такое объявление недопутимо разве?

Ответы978182

23 Апр, 02:03 #489 #978175

>>978173
do you use
в крайнем случае are you using

Ответы978176

23 Апр, 02:06 #490 #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.

Ответы978179978183

23 Апр, 02:10 #491 #978178

Hey....
Where are you all?

23 Апр, 02:16 #492 #978179

>>978176
нет, what language. артикль "a" лишний.
at so - это ващпе пушка. не стоит переводить комбинации частиц и местоимений с русского на английский дословно. с высокой вероятностью результат будет бессмысленный.

Ответы978181

23 Апр, 02:19 #493 #978181

>>978179
В некоторых фильмах слышал, говорили At so... как аналог well, типа "И так.." в контексте продолжения мысли.
Может конечно и померещелось.

23 Апр, 02:20 #494 #978182

>>978174
Дык а я о чём.

Ответы978184

23 Апр, 02:20 #495 #978183

>>978173 >>978176
I am using fluent english to comment my code.

Ответы978185978186

23 Апр, 02:22 #496 #978184

>>978182
Понятно.
У меня ебанутая задача из плюсового приложения вызывать сишные функции одной билиотеки, причем сишная библиотека дохуя сложная в плане своих типов... (Вложенные структуры, указатели на массивы и прочее.)
Заебался я уже этот врапер делать, но свою библиотеку писать - сроки проебать.

23 Апр, 02:24 #497 #978185

>>978183
не самое уместное употребление fluent. при использовании fluent + %language% обычно речь идёт о том, что кто то говорит или пишет на чистом %имяязыка%, но не использует чистый %имяязыка% для %цель%.

Ответы978187

23 Апр, 02:25 #498 #978186

>>978183
We don't.
I work in a Russian company..
Early we used broken English but now we decided to use pure Russian.

Ответы978188

23 Апр, 02:27 #499 #978187

>>978185
Это прилогательное означает "свободно владеющий", "свбодный", и обычно сочетается только с понятием уровня владения чего либо в таком контексте.

Даже по русски криво говорить "Я использую беглый английский в своих комментах".

Ответы978190978192

23 Апр, 02:27 #500 #978188

>>978186
>Early
at first/initially/originally

Ответы978189978191978194

23 Апр, 02:28 #501 #978189

>>978188
Но я хотел сказать - ранее..
Не "Сначала", не "В начале", не "Изначально", а именно ранее..

Ответы978190

23 Апр, 02:29 #502 #978190

>>978187
ну несмотря на некорректность его мысль бы поняли.
>>978189
back then/[long|some] time ago

Ответы978194

23 Апр, 02:30 #503 #978191

>>978188
Но согласен.
Это причастие "Рано", а ранее - earlier.

Ответы978193

23 Апр, 02:30 #504 #978192

>>978187
Таки да.

23 Апр, 02:31 #505 #978193

>>978191
>причастие
наречие.

23 Апр, 02:32 #506 #978194

>>978188
Какая часть "broken english" тебе непонятна? :3
>>978190
>ну несмотря на некорректность его мысль бы поняли.
Ну уж нет. Корректность - это хорошо, даже если всем похуй.

Ответы978196

23 Апр, 02:32 #507 #978195

Нужно больше английской практики.
Где бы только ее взять.

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

23 Апр, 02:34 #508 #978196

>>978194
У меня еще норм.
Я хоть о спряжении глагола забочусь.

Некоторые у нас вообще писали.
I want look result in next week.

Ответы978197

23 Апр, 02:35 #509 #978197

>>978196
Вроде и понятно самим рускоговорящим, но когда так пишешь иностанцем, зачастую они могут тебя реально не понять, и следует серия переспросов - когда, что именно и зачем.

23 Апр, 02:43 #510 #978200

Скушно.

Ответы978221

23 Апр, 06:01 #511 #978221

>>978200
Спать надо просто.

23 Апр, 10:04 #512 #978238

>>978141
Я понял, как решать. Не понял только, как тот хитрый критерий применять, но остального достаточно для решения задачи.

23 Апр, 10:10 #513 #978239

>>978141
А не, всио понял.

23 Апр, 12:12 #514 #978270

есть два класса
один из них потомок другого и используя указатели каждого из них динамически выделяется массив элементов потомка
нужно вызвать метод, выводящий строку на экран,
но проблема в первом массиве, где указатель базового типа, а элементы потомка, там только для первого элемента создается объект типа потомка, немогу понять почему так и как это разрулить
https://pastebin.com/30g8Y1Pq

Ответы978284

23 Апр, 12:42 #515 #978284

>>978270
http://ideone.com/NojQrn

Что тут не так? Вроде всё, как задумано.
В общем случае, так нельзя делать. Это всё работает только потому, что объекты одинакового размера.

Ответы978294

23 Апр, 12:53 #516 #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.

Ответы978296

23 Апр, 12:55 #517 #978296

>>978294
Там всё нормально создаётся. Выведи в консоль sizeof(Shape) и sizeof(Rect). После этого хорошенько подумой, что ты сделал не так. После этого спрашивай дальше.

Ответы978306

53 Кб, 1245x554

23 Апр, 13:08 #518 #978306

>>978296
вот с твоим кодом, что получается,
а в pShapes[0] есть объек Rect
а в pShapes[1] уже нет (я хз почему)
и поскольку это вызов по объекту, то вызывается метод для объекта Rect и вылезает ошибка, потому что объекта нету

насчет sizeof, ну да, я понимаю, что дочерний класс занимает 24 байта, а не 8, как базовый, но это ж мне ничего не дает, я ведь просто вызываю метод, выводящий строку на экран, я не манипулирую никак с данными..

Ответы978310

23 Апр, 13:10 #519 #978310

>>978306
А когда ты к элементам массива обращаешься, что ты делаешь?

Ответы978313

23 Апр, 13:19 #520 #978313

>>978310
ну окей, это образщение к данным
но в данном конкретном случае мне не важно сколько памяти занимает объект массива
проблема-то не в этом
ведь у меня указатель базового класса на динамически выделенный массив элементов дочернего
я ж пишу
Shape* pShapes = new Rect[10]
дайте мне десять элементов типа рект и направьте на первый элемент указатель типа базового класса

Ответы978324978385

23 Апр, 13:23 #521 #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 тип???

Ответы978324978483

23 Апр, 13:27 #522 #978324

>>978313
Ну теперь уже совсем для нулёвых объясняю.
pShapes <=> (pShapes + 8 i)
pRects <=> (pRects + 24 i)

>>978319
Так нельзя делать. С чего ты взял, что так можно?

Ответы978326978331

23 Апр, 13:27 #523 #978325

>>970816 (OP)
У меня есть класс clas_name, при объявлении которого нужно указывать аргументы.
clas_name object(4, 4, 1, 8);//например
И мне надо сделать массив таких объектов с одинаковыми аргументами, как?

Ответы978341

23 Апр, 13:28 #524 #978326

>>978324
Суко, звёздочки.

pShapes <=> \(pShapes + 8\ i)
pRects <=> \(pRects + 24\ i)

Ответы978327

23 Апр, 13:28 #525 #978327

>>978326
Бля, ну я пытался. Абу пидор.

23 Апр, 13:30 #526 #978331

>>978324
x - это тип звёздочки
pShapes <=> x(pShapes + 8 x i)
pRects <=> x(pRects + 24 x i)

23 Апр, 13:39 #527 #978341

>>978325
std::vector<Foo> thousand_foos(1000, Foo(42));

23 Апр, 13:42 #528 #978344

Комрады, вопрос -
я вообще С# + JS мидл под АSP, вкатился вайти в 27, вот уже 3 года работаю, вышел на норм зп. и т.д., а ща перебрался на на еще более коровые задачи, и удаляюсь от веба.
Но все это время по ночам под одеялкой кодал на сях под STM-ки прошивочки для всякой хоббийной и не очень поеботы, даже заработать успел малех. Ща понимаю что Шарпы оче ограничивают вендой, а мои хоббийные проектики требуют реализации уже во всяких эмбедед вариантах под линупсами. Какие-то простые вещи делал на сях в консольке, но уже тесновато. В общем, ща взялся учить плюсы, но одолевает сомнение небольше -
по факту мне нужно как низкоуровневый контроль регистров/ножек железяки, так и некоторые ГУИйовины пилить. И понимаю что должно быть все кроссплатформененько. Исходя из этого в прикладном варианте вижу Qt решением своих проблем, но показалось что для нормального кодинга на Qt стоит довольно существенно освоится в плюсах.
Собственно вопрос - насколько С++ для моих задач лучший выбор инвестиций времени? Не будет ли достаточно Пайтона? Есть ли какие-то другие сильвер-буллеты для косплатформенной разработки низкосреде,
скорееуровневых апликух для всякий этих IoT?

Ответы978363978372978452978483

23 Апр, 13:55 #529 #978363

>>978344
Я в состоянии только первокурам помочь лабы решать)))
Не совсем понятно, чем ты там занимаешься. Если для настолок нужно что-то кросплатформенное, то можно смело перекатываться в JVM-языки, тысячи их: Java, Groovy, Scala, Kotlin, JPython. В многие ARM чипы встроены интерпретаторы JVM-кода, должно достаточно быстро работать.
Если ты там что-то для слабых железяк пишешь, то скорее всего у тебя будет только C, если повезёт, то C++.

Ответы978377

23 Апр, 14:00 #530 #978372

>>978344
>Комрады, вопрос -
>я вообще С# + JS мидл под АSP,
>ко ко ко
Так бы и сказал, что ты петушок.
>вкатился вайти в 27, вот уже 3 года работаю, вышел на норм зп.
Всегда удивляли такие. Можно поинтересоваться, а что ты делал до 27? Писюн малафил и смотрел аниме? А потом БАЦ такой "надо стать ойтешнеком))". А потом и получаются говнокодеры.
Начинать учить программирование надо с первого класса, а как только закончишь 9 классов, в 15 лет идти джуном.
> и т.д., а ща перебрался на на еще более коровые задачи, и удаляюсь от веба.
>Но все это время по ночам под одеялкой кодал на сях под STM-ки прошивочки для всякой хоббийной и не очень поеботы, даже заработать успел малех. Ща понимаю что Шарпы оче ограничивают вендой, а мои хоббийные проектики требуют реализации уже во всяких эмбедед вариантах под линупсами. Какие-то простые вещи делал на сях в консольке, но уже тесновато. В общем, ща взялся учить плюсы, но одолевает сомнение небольше -
>по факту мне нужно как низкоуровневый контроль регистров/ножек железяки, так и некоторые ГУИйовины пилить. И понимаю что должно быть все кроссплатформененько. Исходя из этого в прикладном варианте вижу Qt решением своих проблем, но показалось что для нормального кодинга на Qt стоит довольно существенно освоится в плюсах.
МК только на С прогают(и немного на асме), ты че. Qt это ж на виндовс, а не мк.
>Собственно вопрос - насколько С++ для моих задач лучший выбор инвестиций времени? Не будет ли достаточно Пайтона? Есть ли какие-то другие сильвер-буллеты для косплатформенной разработки низкосреде,
А Пайтона под мк и нет, лол. Только С, только хардкор. Хотя с++ в любом случае тебе будет полезно, так как:
1)он подвид си и в си ты тоже повысишь скилл;
2)сможешь писать совместимое с мк по для компьютера, ведь с++ компилятор и си поддерживает
> скорееуровневых апликух для всякий этих IoT?
А вообще, этим в /ra/ занимаются, там есть треды посвящённые МК, ПЛИС, и arm.

Ответы978379978394978395

23 Апр, 14:03 #531 #978377

>>978363
Писал под ARMы 4е, до этого под 8-бит контроллеры, ща под RPi пробую писать, т.е. под ARM и линь. Какого-то платформоспецифичного кода не планирую, по факту просто хочу универсальности. JVM смущает, хотя то это сейчас это вин не отрицаю. Но настолько радикально менять экосистему не хотел-бы. Все таки плюсы или пайтон скорее просто дополнят мой "портфель" навыков для винды и откроют двери в линь.

519 Кб, 640x480

23 Апр, 14:06 #532 #978379

>>978372
>Qt это ж на виндовс

23 Апр, 14:10 #533 #978385

>>978313
>но в данном конкретном случае мне не важно сколько памяти занимает объект массива
Лол.

23 Апр, 14:16 #534 #978394

>>978372
>Так бы и сказал, что ты петушок.
Так ты ж сам все сказал за себя, чо мне клаву топтать лишний раз.
>Можно поинтересоваться, а что ты делал до 27
Чего тебе горит-то? В том числе кодил, но на тех позициях где кодить было скорее просто полезно чем необходимо, а основными задачами были писать всякие xslt карты конвертации, cmd скприпты и прочее околоайти. А потом манагерил нескольких вонабидевелоперов. Проблемы начали тогда когда я понял что мне приятнее самому в коде колупаться чем манагерить, и тогда решил вкатиться по полной, подтянул забытое и пошел джунить за хлеб с ЗП с пары кусков баксов на пару сотен. А ща вернулся на х2 от того со скольки уходил. В общем, нехуй всех судить по одному посту, признак быдла.
>МК только на С прогают(и немного на асме), ты че. Qt это ж на виндовс.
Штобля? Под что компилятор в asm напишут, на том и прогают. Под те же STM-ки из коробки есть либы и под С и под Плюсы. Под другие мелкие железяки встраивают интерпретаторы Lua, порой Пайтон, а иногда даже JS. Но да, C как бы стандарт де-факто.
По поводу Кьюта под Винду это ты что-то в лужу перданул. Видна там только одна из 3ти (или более) целевых осей.
>А Пайтона под мк и нет, лол. Только С, только хардкор.
Я ж говорю - мне ща более в системное/эмбед программирование нужно влиться. Хуй на МК, там все понятно, и моих С там хватает.

Ответы978509

23 Апр, 14:18 #535 #978395

>>978372
>в 15 лет идти джуном.
Анука скажи что ты джуном ебашишь с 15ти?
Ну и типа не влился до первой малафьи - не кодер?
Футаким снобом быть.

1 Кб, 563x48

23 Апр, 15:14 #536 #978435

>>970816 (OP)
Платиновый нуфажий вопрос:
На вижуалке17 поставил Incrediбил (повелся, на рекламу), начал собирать через него и пизданулся стандартный сборщик.
Можно ли его быстренько выпилить и откатить это все или проще уже переустановить?

Ответы978436978444

23 Апр, 15:16 #537 #978436

Бля, мне наверное надо было в оппост доске с этим пойти, да?
>>978435

sage 23 Апр, 15:36 #538 #978444

>>978435
Спермопроблемы.

> или проще уже переустановить
Да. Переустанови ШINDOWS.

23 Апр, 15:50 #539 #978452

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

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

Ответы978471

23 Апр, 16:10 #540 #978471

>>978452
> на работе пилил софтину для пульта управления, все говно вертелось на линуксе
Вот это как раз примерный пул моих задач.

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

Хочу вкатится именно с недосистемное кроссплатформенное проганье. По факту - слушать порты, обрабатывать-валидировать ввод, преопразовывать данные, отправлять по сети/на другие поры, мигать лампочками, слушать кнопочки. Ну и GUI для мониторига статуса, вывода логов.

Ответы978484

23 Апр, 16:18 #541 #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, так что жабаскрип пригодится.

Ответы978485978621

23 Апр, 16:19 #542 #978484

>>978471
Если ты хочешь, чтобы твой софт вертелся под управлением разных микроконтроллеров, например MSP, STM32, AVR, прочих ARM и т.д., то, если повезет, то адаптировать модули для работы с периферией ты будешь от серии микроконтроллеров к серии (не стоит думать, что если у тебя микроконтроллер на ядре ARM, то и периферия там одинаковая, производители стандарты периферийных устройств на хую вертели, поэтому у разных производителей встроенная периферия, как правило, разная), а в случае богомерзких AVR тебе придется менять модули от микроконтроллера к микроконтроллеру, потому что, возьмем те же ATmega8 и ATmega88 - вроде бы индексы похожие, а на деле в регистрах пиздос, поэтому конвертирование софта с одного ан другой приносит гемор, а в случае, когда настройки/ввод-вывод не были вынесены в отдельные процедуры, так полная жопа.
На микроконтроллерах переносимость связана с написанием полнейшей дичи. Подумай сто раз, нужно ли тебе это и для каких целей. Может гораздо проще все делать на готовом решении, например RPi или Odroid (кстати, вторым мое увожение, потому что, в отличие от первых, смогли-таки завезти нормальные дрова на видео-ускоритель)

Ответы978491

23 Апр, 16:20 #543 #978485

>>978483
>Но вот, например, вот это ты хрен нагуглишь, пока сам не столкнёшься: http://doc.qt.io/qt-5/implicit-sharing.html .
>Когда инициализируешь POD-класс со вложенными классами, можно пользоваться aggregate initialization из C. Когда пишешь то же самое в аргументе для vector<T>::emplace_back() - это уже не катит, так как это уже не инициализация, и один в один скопированное выражение уже даёт ошибку: по правилам каждая пара фигурных скобок должна раскрываться во что-то одно, да и агрегатного конструктора вообще нет, он неявный.

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

Ответы978492

23 Апр, 16:25 #544 #978491

>>978484

Да что ж такое:) Как бы еще подчеркнуть что МК для меня сейчас не на повестке дня?
>На микроконтроллерах переносимость связана с написанием полнейшей дичи.
Да, видел я код написанный для того чтобы компилится под разные версии AVR - это ебанный mess и #IFDEF-ов и тысячей вариаций одного и того же кода. И мне оно нахуй не надо -
Мне хватает семейства STM-ов, для который большинство перефирии +- причесали для однотипного использования. Так что часть МК для меня пока закрыта, и нужно закрыть часть по написанию эмбедового "бэкенда" который будет данные с этих контроллеров собирать и давать пользователю это все мониторить/менеджерить. ПОтому и Линукс, потому и Qt

Ответы978499

23 Апр, 16:26 #545 #978492

>>978485
Да, на QML смотрю облизываясь, но боюсь браться не разобравшись в кишках C++, дабы не остаться на уровне формошлепа под линупс.

Ответы979378

23 Апр, 16:41 #546 #978499

>>978491
>> на QML смотрю облизываясь
Уж сколько лет прошло с его появления, так и остается багованным говнищем. Хотя для мелокоподелок его за глаза, а вот полноценное приложение только лишь на QML я бы писать не стал, разве что фронт-енд.

Ответы978508

23 Апр, 16:46 #547 #978508

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

23 Апр, 16:49 #548 #978509

>>978394
>А Пайтона под мк и нет, лол. Только С, только хардкор.
>Я ж говорю - мне ща более в системное/эмбед программирование нужно влиться. Хуй на МК, там все понятно, и моих С там хватает.
Лол што? Микроконтроллеры это и есть Embedded, STM, AVR, PIC это мк, ну ARM ещё. Что в твоём понимании embedded, раз это не мк?

Ответы978520

23 Апр, 16:59 #549 #978520

>>978509
Это тоже эмбед, да. Но в системное проганье то что ты описал не входит. Потому говоря "системное/эмбед" проганье я подразумеваю не или/или а некторый стык этих двух областей.
Но а по поводу того что сейчас понимается под embedded - посмею тебя удивить, но это прежде всего код под Linux в тех или иных его масштабах, под специфичное железо, влючая написание дров и конфигурирование этого железа под линь. И как самый мозговыносящий момент - в качестве сборки линя для всяких железяк типа баркод-сканера или POS терминала сейчас поразительно часто предпочитают Android, и разработка под Андроид тоже очень часто стала подразумеватся под embedded.

А голый кодинг под МК уже чуть ли не архаика и прерогатива аutomotive сегмента, куда набирают С-макак да, странно слышать на 500-1000 уе без шанса роста. Но то уже офтоп

Ответы978537

23 Апр, 17:15 #550 #978537

>>978520
>И как самый мозговыносящий момент - в качестве сборки линя для всяких железяк типа баркод-сканера или POS терминала сейчас поразительно часто предпочитают Android, и разработка под Андроид тоже очень часто стала подразумеватся под embedded.
Т.е. андроид применяется не только в телефонах, но и в промышленности?
>А голый кодинг под МК уже чуть ли не архаика и прерогатива аutomotive сегмента, куда набирают С-макак да, странно слышать на 500-1000 уе без шанса роста. Но то уже офтоп
Я походу это. Учусь на автоматчика и мы писали на С на мк AVR. У преподавателя такая же работа.

Ответы978544978584

23 Апр, 17:19 #551 #978544

>>978537
>Т.е. андроид применяется не только в телефонах, но и в промышленности?
Прикинь) Потому не теряй времени и копай в линукс, будешь ценным "кадром". На проганье МК слишком много дедов сидит, на копеечные ЗП.
> чусь на автоматчика
Если уж нравится носом в регистрах зарываться, то учи Пролог, ПЛИС, и т.д. Там хоть ЗП со среднепрограммистскими равняются. Но стартовать все равно сложно - порог вхождения не низкий.

23 Апр, 18:22 #552 #978584

>>978537
Мне все время казалось, что ведроиду не место в индустрии. Там уже плотно сидят WinCE и Linux.
То, что в ведроиде зачастую могут валиться приложения в самый неподходящий момент, да и вообще создан он был не для этого. Цена ошибки высокая, особенно когда она проявляется в нарушении рабочего цикла уже у клиента, так что тут только WinCE и Linux, ИМХО.
Касательно C++ с Qt под андроидом - тут тоже своих косяков хватает. Кроме них придется в любом случае ебаться с JNI, чтобы получать права доступа и прочее, прочее... Не проще ли тогда сразу использовать Java, вместо плясок с бубном, и в итоге получив кучу говна идущего впридачу с Qt?!

Ответы978590

23 Апр, 18:27 #553 #978590

>>978584
В критических местах "индустрии" и обычному линю не место, только всякие RTOS, только хардкор.

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

23 Апр, 19:03 #554 #978621

>>978483
>Напиши по-русски без речевых ошибок, и я отвечу.
Посредством объекта b и указателя p вызовите виртуальную функцию WhereAmI() класса A

Ответы978648

23 Апр, 19:49 #555 #978648

>>978621
То есть, тебе нужно вызвать метод объекта А по отношению к Б вместо правильного метода, так?
Ты должен делать это изнутри.

class A {
virtual void huy();
}

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

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

Ответы978649978654978687

23 Апр, 19:50 #556 #978649

>>978648
Поправочка:

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

class B : class A {
virtual void huy(){cin<<'beach';}
void oldHuy() {
A::huy();
}
}

sage 23 Апр, 19:57 #557 #978654

>>978648
>Сделать это снаружи ты не можешь.
Может.

Ответы978689

23 Апр, 20:43 #558 #978687

>>978648
На то они виртуальные, что знают, к какому классу принадлежат.

23 Апр, 20:46 #559 #978689

>>978654
Код в студию.

Ответы978706

sage 23 Апр, 21:11 #560 #978706

>>978689
>Код в студию.
Не пользуюсь студией.
http://ideone.com/VnrzJh

Ответы978745

23 Апр, 22:35 #561 #978745

>>978706
Поняяяяяятно. Но: http://ideone.com/XgK4eV

Ответы978749978752

sage 23 Апр, 22:36 #562 #978749

>>978745
И?

Ответы978784

23 Апр, 22:41 #563 #978752

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

Ответы978784

23 Апр, 23:17 #564 #978779

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

Ответы978782

sage 23 Апр, 23:20 #565 #978782

>>978779
> Не могу найти в интернете ман по валгринду на русском.
Без мана не можешь написать
valgrind ./kokoko
(./kokoko - это твой бинарник) ?

Ответы978785

23 Апр, 23:21 #566 #978784

http://stackoverflow.com/questions/8003233

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

>>978749
Можешь не продолжать. Я получил ответ на свой вопрос и дополнил его.
>>978752
Тебя забыл спросить. А, нет, не забыл, просто иди нахуй.

23 Апр, 23:22 #567 #978785

>>978782
>valgrind ./kokoko
А, нужно через ./
Спасибо

Ответы978786

sage 23 Апр, 23:22 #568 #978786

>>978785
> А, нужно через ./
А до этого ты как запускал свои поделки?

Ответы978791978793

23 Апр, 23:31 #569 #978791

>>978786
Запускал так, просто ждб запускатся просто по имени файла.

23 Апр, 23:36 #570 #978793

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

Ответы978794

sage 23 Апр, 23:38 #571 #978794

>>978793
>я использую неициализированную перменную структуры, но при этом ее значение правильное
В смысле?
> Как я могу посмотреть еще что-нибудь?
Что конкретно?

Ответы978798

23 Апр, 23:41 #572 #978798

>>978794
>В смысле?
https://clbin.com/RCh7Uy.png
>Что конкретно?
Вообще что угодно. Любая информация, которая может помочь понять в чем дело.

Ответы978802978876

sage 23 Апр, 23:45 #573 #978802

>>978798
>Любая информация, которая может помочь понять в чем дело.
Посмотри в код.

Ответы978803

23 Апр, 23:46 #574 #978803

>>978802
А ты хорош.

Ответы978863

24 Апр, 00:39 #575 #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
А вот, что выдает валгринд. Память нигде выше не освобождается, выделяется только в одном месте через нью и после проблемной функции освобождается.

Ответы978864978865978879

sage 24 Апр, 00:45 #576 #978863

>>978803
Что не так? Номера строк тебе написали.

Ответы978866

sage 24 Апр, 00:45 #577 #978864

>>978856
Код ты нам, конечно, не покажешь.

24 Апр, 00:49 #578 #978865

>>978856
Кусок проблемного кода https://pastebin.com/36GstaA8 Проблема в первом вызове IsAHum_
Вся функция целиком https://pastebin.com/c7K2XA6S
Вот ашник (Tree.h) https://pastebin.com/LYY2RZf4
Вот реализация класса, проблемная функция не оттуда, но возможно, что он при проходе как-то влияет на дерево (User.cpp) https://pastebin.com/2KV0sbVk

Ответы978866978867978870

24 Апр, 00:51 #579 #978866

>>978863
Ну так я и не понимаю, что не так в этой безобидной строке.
>>978865
В добавок, вот пример файла, подаваемого на вход, назвать Base.txt https://pastebin.com/aw8wgYy2

sage 24 Апр, 00:52 #580 #978867

>>978865
Скинь архивом с именами файлов.

sage 24 Апр, 00:58 #581 #978870

>>978865
У меня valgrind ни на что не жалуется.
Но и выходной файл пустой.

Ответы978871

24 Апр, 00:59 #582 #978871

>>978870
После каждого запуска программы, выходной файл нужно обновлять(он по совместительству является входным) до того, что я скинул в пастбине.

Ответы978872978873

sage 24 Апр, 01:00 #583 #978872

>>978871
Я просто сделал вывод в файл с другим именем, входной не портится.

Ответы978874

sage 24 Апр, 01:05 #584 #978873

>>978871
Да, понятно. past ebin превратил \n в \r\n

24 Апр, 01:05 #585 #978874

>>978872
Интересная ситуация. А входной у тебя как у меня ?
https://clbin.com/559E3G.png

Ответы978875

sage 24 Апр, 01:05 #586 #978875

>>978874
Поэтому надо кидать архивом, чтобы ничего не портилось.

sage 24 Апр, 01:06 #587 #978876

>>978798
>Любая информация, которая может помочь понять в чем дело.
В предпоследней строке тебе valgrind говорит, что ещё можно сделать.

sage 24 Апр, 01:14 #588 #978879

>>978856
>В общем я не знаю в чем причина.
Смотри в 68-ю строку.

Ответы978880

24 Апр, 01:17 #589 #978880

>>978879
У меня к вам предложение. Не бейте лучше обоссыте.
А не расскажешь, как нашел?

Ответы978881978882

sage 24 Апр, 01:18 #590 #978881

>>978880
valgrind --track-origins=yes ./Server

Ответы978883

24 Апр, 01:18 #591 #978882

>>978880
Хотя я подумал, можно было догадаться по жалобе на строку в цикле.

24 Апр, 01:18 #592 #978883

>>978881
Я кстати тоже это забил и ничего полезного почерпнуть не смог. https://clbin.com/ABIcuE.png

Ответы978885

sage 24 Апр, 01:21 #593 #978885

>>978883
Неинициализированную память выделил vector. Скорее всего, ты лезешь за границы инициализированного в ней.

24 Апр, 19:46 #594 #979275

auto t1 = std::async(test);
auto t2 = std::async(test);
return t1.get() == 0 && t2.get() == 0;

Почему только один тред запускается? Нет времени по докам лазить

Ответы979302979402

24 Апр, 21:00 #595 #979302

>>979275
std::async(std::launch::async, test)

Кстати, отличный сервис, можно установить зависимости, собрать проект и запустить тесты https://travis-ci.org/theanonym/libyoba-perl/builds/225310958
и будет собираться автоматически после каждого коммита

24 Апр, 22:45 #596 #979378

>>978492
В кишках С++ ты хуй разберёшься.
http://stackoverflow.com/questions/98650/what-is-the-strict-aliasing-rule

Если вкратце, то это правило означает то, что от приведения типов указателей твой брат умрёт.

24 Апр, 23:04 #597 #979402

>>979275
t1.get() != 0

sage !VtH.ahzeV6 25 Апр, 00:47 #598 #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 Май, 01:30 #599 #992049

>>977629
С тем же самым говном пришел на двач сейчас и даже тут ответов нет

Тред утонул или удален.
Это копия, сохраненная 4 июня 2017 года.

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

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

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion