Сохранен 609
https://2ch.hk/pr/res/448310.html
Прошлые домены больше не функционируют, используйте адрес ARHIVACH.HK.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

C/C++

 Аноним 10/03/15 Втр 18:13:23 #1 №448310 
14260004036580.jpg
Вопросы по ";" задавать сюда:
http://www.google.com
http://www.cppreference.com
http://www.cplusplus.com

Список литературы:
http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list
http://stackoverflow.com/questions/562303/the-definitive-c-book-guide-and-list

Предыдущий тред (тонет):
>>441690
sageАноним 10/03/15 Втр 18:38:13 #2 №448320 
>>448310
Красава, хорошо сделал. Жаль, что долбоебы все равно продолжат спрашивать, как присвоить значение переменной.
sageАноним 10/03/15 Втр 18:39:28 #3 №448321 
зачем нужны указатели?
sageАноним 10/03/15 Втр 18:47:38 #4 №448325 
14260024580440.jpg
>>448321
прост)))
Аноним 10/03/15 Втр 22:23:30 #5 №448462 
>>448310
Пик порашный
sageАноним 10/03/15 Втр 22:25:54 #6 №448463 
>>448310
Анон как скомпилировать программу чтоб сразу работало?
sageАноним 10/03/15 Втр 22:26:55 #7 №448465 
Ребята раскажыте какую функцыю написать чтоб акаунт в Вконтакте взламывать?!?!
Важно Аноним 10/03/15 Втр 22:27:54 #8 №448467 
>>448310
КАК ОТСОРТИРОВАТЬ МАСИВ?!
sageАноним 10/03/15 Втр 22:35:00 #9 №448469 
куда нажимать чтоб программа работала?
Аноним 10/03/15 Втр 23:24:57 #10 №448486 
>>448321
Много для чего.
Например для передачи из функции значения.
>>448463
Старайся написать программу без синтаксических ошибок в коде.
>>448465
Нет таких фунцкий.
>>448469
Зеленая стрелочка в visual studio сверху.
sageАноним 11/03/15 Срд 00:34:34 #11 №448506 
анон что это

In file included from /usr/include/c++/4.6/mocha:5:0, from error_code.cpp:2:
/usr/include/c++/4.6/bits/stl_algo.h: In function ‘_RandomAccessIterator std::__find(_RandomAccessIterator, _RandomAccessIterator, const _Tp&, std::random_access_iterator_tag) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator, std::vector > >, _Tp = int]’:
/usr/include/c++/4.6/bits/stl_algo.h:4403:45: instantiated from ‘_IIter std::find(_IIter, _IIter, const _Tp&) [with _IIter = __gnu_cxx::__normal_iterator
, std::vector > >, _Tp = int]’
error_code.cpp:8:89: instantiated from here
/usr/include/c++/4.6/bits/stl_algo.h:162:4: error: no match for ‘operator==’ in ‘__first.__gnu_cxx::__normal_iterator::operator [with _Iterator = std::vector, _Container = std::vector >, __gnu_cxx::__normal_iterator::reference = std::vector&]() == __val’
/usr/include/c++/4.6/bits/stl_algo.h:162:4: note: candidates are:
/usr/include/c++/4.6/bits/stl_pair.h:201:5: note: template bool std::operator==(const std::pair&, const std::pair&)
/usr/include/c++/4.6/bits/stl_iterator.h:285:5: note: template bool std::operator==(const std::reverse_iterator&, const std::reverse_iterator&)
/usr/include/c++/4.6/bits/stl_iterator.h:335:5: note: template bool std::operator==(const std::reverse_iterator&, const std::reverse_iterator&)
/usr/include/c++/4.6/bits/allocator.h:122:5: note: template bool std::operator==(const std::allocator&, const std::allocator&)
/usr/include/c++/4.6/bits/allocator.h:127:5: note: template bool std::operator==(const std::allocator&, const std::allocator&)
/usr/include/c++/4.6/bits/stl_vector.h:1273:5: note: template bool std::operator==(const std::vector&, const std::vector&)
/usr/include/c++/4.6/ext/new_allocator.h:123:5: note: template bool __gnu_cxx::operator==(const __gnu_cxx::new_allocator&, const __gnu_cxx::new_allocator&)
/usr/include/c++/4.6/bits/stl_iterator.h:805:5: note: template bool __gnu_cxx::operator==(const __gnu_cxx::__normal_iterator&, const __gnu_cxx::__normal_iterator&)
/usr/include/c++/4.6/bits/stl_iterator.h:799:5: note: template bool __gnu_cxx::operator==(const __gnu_cxx::__normal_iterator&, const __gnu_cxx::__normal_iterator&)
/usr/include/c++/4.6/bits/stl_algo.h:4403:45: instantiated from ‘_IIter std::find(_IIter, _IIter, const _Tp&) [with _IIter = __gnu_cxx::__normal_iterator, std::vector > >, _Tp = int]’
error_code.cpp:8:89: instantiated from here
/usr/include/c++/4.6/bits/stl_algo.h:166:4: error: no match for ‘operator==’ in ‘__first.__gnu_cxx::__normal_iterator::operator
[with _Iterator = std::vector, _Container = std::vector >, __gnu_cxx::__normal_iterator::reference = std::vector&]() == __val’
/usr/include/c++/4.6/bits/stl_algo.h:166:4: note: candidates are:
/usr/include/c++/4.6/bits/stl_pair.h:201:5: note: template bool std::operator==(const std::pair&, const std::pair&)
/usr/include/c++/4.6/bits/stl_iterator.h:285:5: note: template bool std::operator==(const std::reverse_iterator&, const std::reverse_iterator&)
/usr/include/c++/4.6/bits/stl_iterator.h:335:5: note: template bool std::operator==(const std::reverse_iterator&, const std::reverse_iterator&)
/usr/include/c++/4.6/bits/allocator.h:122:5: note: template bool std::operator==(const std::allocator&, const std::allocator&)
/usr/include/c++/4.6/bits/allocator.h:127:5: note: template bool std::operator==(const std::allocator&, const std::allocator&)
/usr/include/c++/4.6/bits/stl_vector.h:1273:5: note: template bool std::operator==(const std::vector&, const std::vector&)
/usr/include/c++/4.6/ext/new_allocator.h:123:5: note: template bool __gnu_cxx::operator==(const __gnu_cxx::new_allocator&, const __gnu_cxx::new_allocator&)
/usr/include/c++/4.6/bits/stl_iterator.h:805:5: note: template bool __gnu_cxx::operator==(const __gnu_cxx::__normal_iterator&, const __gnu_cxx::__normal_iterator&)
/usr/include/c++/4.6/bits/stl_iterator.h:799:5: note: template bool __gnu_cxx::operator==(const __gnu_cxx::__normal_iterator&, const __gnu_cxx::__normal_iterator&)
/usr/include/c++/4.6/bits/stl_algo.h:170:4: error: no match for ‘operator==’ in ‘__first.__gnu_cxx::__normal_iterator::operator
[with _Iterator = std::vector, _Container = std::vector >, __gnu_cxx::__normal_iterator::reference = std::vector&]() == __val’
/usr/include/c++/4.6/bits/stl_algo.h:170:4: note: candidates are:
/usr/include/c++/4.6/bits/stl_pair.h:201:5: note: template bool std::operator==(const std::pair&, const std::pair&)
/usr/include/c++/4.6/bits/stl_iterator.h:285:5: note: template bool std::operator==(const std::reverse_iterator&, const std::reverse_iterator&)
/usr/include/c++/4.6/bits/stl_iterator.h:335:5: note: template bool std::operator==(const std::reverse_iterator&, const std::reverse_iterator&)
/usr/include/c++/4.6/bits/allocator.h:122:5: note: template bool std::operator==(const std::allocator&, const std::allocator&)
/usr/include/c++/4.6/bits/allocator.h:127:5: note: template bool std::operator==(const std::allocator&, const std::allocator&)
/usr/include/c++/4.6/bits/stl_vector.h:1273:5: note: template bool std::operator==(const std::vector&, const std::vector&)
/usr/include/c++/4.6/ext/new_allocator.h:123:5: note: template bool __gnu_cxx::operator==(const __gnu_cxx::new_allocator&, const __gnu_cxx::new_allocator&)
/usr/include/c++/4.6/bits/stl_iterator.h:805:5: note: template bool __gnu_cxx::operator==(const __gnu_cxx::__normal_iterator&, const __gnu_cxx::__normal_iterator&)
/usr/include/c++/4.6/bits/stl_iterator.h:799:5: note: template bool __gnu_cxx::operator==(const __gnu_cxx::__normal_iterator&, const __gnu_cxx::__normal_iterator&)
/usr/include/c++/4.6/bits/stl_algo.h:174:4: error: no match for ‘operator==’ in ‘__first.__gnu_cxx::__normal_iterator::operator
[with _Iterator = std::vector, _Container = std::vector >, __gnu_cxx::__normal_iterator::reference = std::vector&]() == __val’
/usr/include/c++/4.6/bits/stl_algo.h:174:4: note: candidates are:
/usr/include/c++/4.6/bits/stl_pair.h:201:5: note: template bool std::operator==(const std::pair&, const std::pair&)
/usr/include/c++/4.6/bits/stl_iterator.h:285:5: note: template bool std::operator==(const std::reverse_iterator&, const std::reverse_iterator&)
/usr/include/c++/4.6/bits/stl_iterator.h:335:5: note: template bool std::operator==(const std::reverse_iterator&, const std::reverse_iterator&)
/usr/include/c++/4.6/bits/allocator.h:122:5: note: template bool std::operator==(const std::allocator&, const std::allocator&)
/usr/include/c++/4.6/bits/allocator.h:127:5: note: template bool std::operator==(const std::allocator&, const std::allocator&)
/usr/include/c++/4.6/bits/stl_vector.h:1273:5: note: template bool std::operator==(const std::vector&, const std::vector&)
/usr/include/c++/4.6/ext/new_allocator.h:123:5: note: template bool __gnu_cxx::operator==(const __gnu_cxx::new_allocator&, const __gnu_cxx::new_allocator&)
/usr/include/c++/4.6/bits/stl_iterator.h:805:5: note: template bool __gnu_cxx::operator==(const __gnu_cxx::__normal_iterator&, const __gnu_cxx::__normal_iterator&)
/usr/include/c++/4.6/bits/stl_iterator.h:799:5: note: template bool __gnu_cxx::operator==(const __gnu_cxx::__normal_iterator&, const __gnu_cxx::__normal_iterator&)
/usr/include/c++/4.6/bits/stl_algo.h:182:4: error: no match for ‘operator==’ in ‘__first.__gnu_cxx::__normal_iterator::operator
[with _Iterator = std::vector, _Container = std::vector >, __gnu_cxx::__normal_iterator::reference = std::vector&]() == __val’
/usr/include/c++/4.6/bits/stl_algo.h:182:4: note: candidates are:
/usr/include/c++/4.6/bits/stl_pair.h:201:5: note: template bool std::operator==(const std::pair&, const std::pair&)
/usr/include/c++/4.6/bits/stl_iterator.h:285:5: note: template bool std::operator==(const std::reverse_iterator&, const std::reverse_iterator&)
/usr/include/c++/4.6/bits/stl_iterator.h:335:5: note: template bool std::operator==(const std::reverse_iterator&, const std::reverse_iterator&)
/usr/include/c++/4.6/bits/allocator.h:122:5: note: template bool std::operator==(const std::allocator&, const std::allocator&)
/usr/include/c++/4.6/bits/allocator.h:127:5: note: template bool std::operator==(const std::allocator&, const std::allocator&)
/usr/include/c++/4.6/bits/stl_vector.h:1273:5: note: template bool std::operator==(const std::vector&, const std::vector&)
/usr/include/c++/4.6/ext/new_allocator.h:123:5: note: template bool __gnu_cxx::operator==(const __gnu_cxx::new_allocator&, const __gnu_cxx::new_allocator&)
/usr/include/c++/4.6/bits/stl_iterator.h:805:5: note: template bool __gnu_cxx::operator==(const __gnu_cxx::__normal_iterator&, const __gnu_cxx::__normal_iterator&)
/usr/include/c++/4.6/bits/stl_iterator.h:799:5: note: template bool __gnu_cxx::operator==(const __gnu_cxx::__normal_iterator&, const __gnu_cxx::__normal_iterator&)
/usr/include/c++/4.6/bits/stl_algo.h:186:4: error: no match for ‘operator==’ in ‘__first.__gnu_cxx::__normal_iterator::operator
[with _Iterator = std::vector, _Container = std::vector >, __gnu_cxx::__normal_iterator::reference = std::vector&]() == __val’
/usr/include/c++/4.6/bits/stl_algo.h:186:4: note: candidates are:
/usr/include/c++/4.6/bits/stl_pair.h:201:5: note: template bool std::operator==(const std::pair&, const std::pair&)
/usr/include/c++/4.6/bits/stl_iterator.h:285:5: note: template bool std::operator==(const std::reverse_iterator&, const std::reverse_iterator&)
/usr/include/c++/4.6/bits/stl_iterator.h:335:5: note: template bool std::operator==(const std::reverse_iterator&, const std::reverse_iterator&)
/usr/include/c++/4.6/bits/allocator.h:122:5: note: template bool std::operator==(const std::allocator&, const std::allocator&)
/usr/include/c++/4.6/bits/allocator.h:127:5: note: template bool std::operator==(const std::allocator&, const std::allocator&)
/usr/include/c++/4.6/bits/stl_vector.h:1273:5: note: template bool std::operator==(const std::vector&, const std::vector&)
/usr/include/c++/4.6/ext/new_allocator.h:123:5: note: template bool __gnu_cxx::operator==(const __gnu_cxx::new_allocator&, const __gnu_cxx::new_allocator&)
/usr/include/c++/4.6/bits/stl_iterator.h:805:5: note: template bool __gnu_cxx::operator==(const __gnu_cxx::__normal_iterator&, const __gnu_cxx::__normal_iterator&)
/usr/include/c++/4.6/bits/stl_iterator.h:799:5: note: template bool __gnu_cxx::operator==(const __gnu_cxx::__normal_iterator&, const __gnu_cxx::__normal_iterator&)
/usr/include/c++/4.6/bits/stl_algo.h:190:4: error: no match for ‘operator==’ in ‘__first.__gnu_cxx::__normal_iterator::operator
[with _Iterator = std::vector*, _Container = std::vector >, __gnu_cxx::__normal_iterator::reference = std::vector&]() == __val’
/usr/include/c++/4.6/bits/stl_algo.h:190:4: note: candidates are:
/usr/include/c++/4.6/bits/stl_pair.h:201:5: note: template bool std::operator==(const std::pair&, const std::pair&)
/usr/include/c++/4.6/bits/stl_iterator.h:285:5: note: template bool std::operator==(const std::reverse_iterator&, const std::reverse_iterator&)
/usr/include/c++/4.6/bits/stl_iterator.h:335:5: note: template bool std::operator==(const std::reverse_iterator&, const std::reverse_iterator&)
/usr/include/c++/4.6/bits/allocator.h:122:5: note: template bool std::operator==(const std::allocator&, const std::allocator&)
/usr/include/c++/4.6/bits/allocator.h:127:5: note: template bool std::operator==(const std::allocator&, const std::allocator&)
/usr/include/c++/4.6/bits/stl_vector.h:1273:5: note: template bool std::operator==(const std::vector&, const std::vector&)
/usr/include/c++/4.6/ext/new_allocator.h:123:5: note: template bool __gnu_cxx::operator==(const __gnu_cxx::new_allocator&, const __gnu_cxx::new_allocator&)
/usr/include/c++/4.6/bits/stl_iterator.h:805:5: note: template bool __gnu_cxx::operator==(const __gnu_cxx::__normal_iterator&, const __gnu_cxx::__normal_iterator&)
/usr/include/c++/4.6/bits/stl_iterator.h:799:5: note: template bool __gnu_cxx::operator==(const __gnu_cxx::__normal_iterator&, const __gnu_cxx::__normal_iterator&)
sageАноним 11/03/15 Срд 00:40:51 #12 №448508 
aaaxaxaxaaxaxxaxx
http://ideone.com/T9tLY2
Аноним 11/03/15 Срд 04:41:05 #13 №448527 
>>448508
Для студии был сплоит, основанный точно на таком же принципе.
Аноним 11/03/15 Срд 09:42:07 #14 №448549 
Аноны, почему

int n=2;
if(n=1,2,3,4){
cout<<"Ok";
}

срабатывает как истина и выводит Ok?
Аноним 11/03/15 Срд 09:44:54 #15 №448551 
>>448549
(n==1,2,3,4)

*быстрофикс
sageАноним 11/03/15 Срд 09:45:23 #16 №448552 
>>448549
Потому что учи синтаксис, долбоеб.
sageАноним 11/03/15 Срд 09:45:40 #17 №448553 
>>448551
Сути дела не меняет.
Аноним 11/03/15 Срд 09:47:39 #18 №448555 
>>448553

Почему не меняет? Тут же оператор сравнения ==, а не присваивания. В чём тонкость?

Суть в том, что препод сейчас сказала, что один чувак с первого курса с помощью этой конструкции как-то сделал так, что if работал как switch. Как именно - она не помнит, но вложенности там не было.
sageАноним 11/03/15 Срд 09:48:21 #19 №448557 
>>448555
http://lmgtfy.com/?q=c%2B%2B+operator+comma
sageАноним 11/03/15 Срд 09:49:32 #20 №448558 
>>448555
Алсо, можешь своей преподше дебильной в рот нассать, пезды не могут в погромирование.
Аноним 11/03/15 Срд 09:56:36 #21 №448563 
>>448558
Хуита какая-то. Судя по описанию этой операции должно другое получаться.
sageАноним 11/03/15 Срд 09:59:50 #22 №448565 
14260571901590.png
>>448563
Так понятнее?
Аноним 11/03/15 Срд 10:01:15 #23 №448566 
>>448565
Да. Значит эта овца пиздит и что-то она так не так увидела или поняла.
sageАноним 11/03/15 Срд 10:09:01 #24 №448568 
>>448566
Именно. Или у того хуесоса, про которого она говорит, по стечению обстоятельств код работал верно, хоть и был ошибочным (например, переменная n всегда была равна 1, если брать твой пример).
Аноним 11/03/15 Срд 16:52:35 #25 №448748 
>>448310
Посоны, чего написать джуну для портфолио? Знание каких технологий обязательно, кроме основ? Кути, бусты обязательны для джуна?

Я сам жабоблядок, на работу не берут нихуя. Думаю обмазаться крестами, хули делать.
Аноним 11/03/15 Срд 16:54:38 #26 №448752 
>>448748
О, заинтересовался. Бамп вопросу. Что вообще надо на крестоджуна знать?
sageАноним 11/03/15 Срд 16:56:12 #27 №448754 
>>448748
Борду напиши, азаза. Так то было бы и не азаза, но заебешься объяснять потом зашоренным дебилам. В какой области хочешь работать, для той и пиши. Для десктопа, например, очевидный текстовый редактор (что-то уровня Notepad++, без лишних перделок).
Фреймворк хотя бы один надо изучить. Как без них то вообще что-то можно писать? Это ж велосипед на велосипеде выходит.
Ну и раз уж тебя на жабе не берут, то на крестах не возьмут и подавно, это тебе не в XML конфиги прописывать, тут все серьезнее и порог вхождения выше.
Аноним 11/03/15 Срд 17:16:22 #28 №448763 
>>448748
> Кути, бусты обязательны для джуна?
Вообще зависит от вакансии, но если ты собрался писать для портфолио то нужны. Врядли ты что-то напишешь без них. Можно конечно WinAPI использовать, но скорее всего на тебя будут показывать пальцами и смеяться. Если собираешся погружатся в кресты то лишними они не будут, особенно буст.
Аноним 11/03/15 Срд 17:24:56 #29 №448765 
>>448754
А если парсер капчи написать? Норм будет? Чейто текстовый редактор не интересно, а борду клепать долго.
Аноним 11/03/15 Срд 17:34:01 #30 №448769 
>>448765
нахуя ты спрашиваешь, если у самого идеи есть
вангую, что ты просто петушок, который ничего не напишет.
sageАноним 11/03/15 Срд 17:49:26 #31 №448772 
>>448765
>парсер
>парсер
>парсер
>парсер
Блять...
>>448769
Поддерживаю мелкобуквенного.
Аноним 11/03/15 Срд 18:01:29 #32 №448777 
чё вы все с сегой пишите?
Аноним 11/03/15 Срд 18:02:21 #33 №448778 
>>448777
Байтоебы, сэр.
Аноним 11/03/15 Срд 18:04:01 #34 №448781 
>>448777
Не думал, что это один человек?
Аноним 11/03/15 Срд 18:05:10 #35 №448782 
>>448781
Нет, тут же приличное общество, зачем здесь семёнить?
sageАноним 11/03/15 Срд 18:05:10 #36 №448783 
>>448777
Не все, а только я. Тому що не нравится этот тред (из-за толп студентов-дегенератов). Хочется помогать адекватным людям, которым интересно, которые хотят учиться, а вместо этого что? Долбоебы со своими лабами, не могущими синтаксис загуглить.
sageАноним 11/03/15 Срд 18:05:48 #37 №448784 
>>448783
>не могущие
фикс
Аноним 11/03/15 Срд 18:08:38 #38 №448786 
>>448783
Кек. А я вот пилю решалку систем линейных уравнений методом итераций.
inb4: Уебывай студентоблядь.
Решил по фану запилить. Сейчас правда какая-то ошибка сверхъестественная.
Собранная ms компилятором программа правильно.
Собранная Gcc компиляторо программа работает неправильно.
Если запустить вторую программу в режиме дебагенга она опять начинает работать, как надо.
Аноним 11/03/15 Срд 18:10:33 #39 №448790 
>>448786
Вангую undefined behaviour где-нибудь. Границы массивов проверь, лол.
Аноним 11/03/15 Срд 18:11:12 #40 №448791 
>>448786
И я без понятия, как посмотреть значения переменных, не запуская дебаггер.
Если же я запускаю программу, то она высчитывает значения как надо.

>>448790
Да вроде бы не выходит нигде.
Аноним 11/03/15 Срд 18:13:09 #41 №448792 
>>448791
> как посмотреть значения переменных не запуская дебаггер
cout <<
Аноним 11/03/15 Срд 18:13:30 #42 №448793 
>>448791
Ну тогда только хардкор, только логирование ручками в консоль через строчку.
Аноним 11/03/15 Срд 18:14:15 #43 №448794 
>>448792
Ну вот я сейчас этим и буду заниматься. Загуглил - ничего внятного не нашел.
sageАноним 11/03/15 Срд 18:20:59 #44 №448797 
>>448786
Код давай. У меня первокур один такой был, тоже у него в дебаге работало, а в релизе падало. Оказалось, что какое-то обоссанное мелкомягкое расширение синтаксиса использовалось, типа new int[] (именно так, без указания размера). Так что давай свой код.
Аноним 11/03/15 Срд 18:25:25 #45 №448799 
14260875253950.png
14260875253961.png
>>448797
https://github.com/nukede/iteration_method
Бля, только не хуесосьте. Проблема в методе isSeriesConveres(). Там переменная summ растет, хотя в конкретно случае должна уменьшаться.
Аноним 11/03/15 Срд 18:25:28 #46 №448800 
>>448797
> У меня первокур один такой был
ты че препод тип?
sageАноним 11/03/15 Срд 18:29:22 #47 №448803 
>>448800
Не, в этом году сам только выпускаюсь. Но поскольку я уже работаю в том же универе, попросили студента подучить, чтоб проект один ему передать, который до этого я пилил. Курс погромирования, увы, крайне убогий и бесполезный, формочки мышкой на дельфях и все.
sageАноним 11/03/15 Срд 18:33:41 #48 №448806 
>>448799
Ебушки-воробушки, это ж охуеть можно такую лапшу разбирать.
Аноним 11/03/15 Срд 18:35:13 #49 №448808 
>>448806
Ну лучше пока не умею, кхек. Учусь только.
sageАноним 11/03/15 Срд 18:37:22 #50 №448809 
>>448808
Чет я не вижу, где у тебя выводятся эти
>0+0*0=0
и так далее.
Аноним 11/03/15 Срд 18:38:32 #51 №448811 
>>448799
Так, блять. Какого хуя ты творишь?
Посмотри на SIM::SetMatrixA() для начала. На цикл, где ты память выделяешь.
Аноним 11/03/15 Срд 18:39:22 #52 №448812 
>>448811
А что с ним не так? Надо как-то по-другом память выделять?
Аноним 11/03/15 Срд 18:40:54 #53 №448813 
>>448809
Я это 5 минут назад дописал. На github лежит версия, которая работала только в msvs. Просто я решил побрать под gcc и обосрался.
Нет, я понимаю, что я обосрался, как только написал свой первый hello_world и вообще мне в макдак пора, но пока хочется, чтобы программка заработала.
Аноним 11/03/15 Срд 18:42:06 #54 №448815 
>>448799
> numberOfVarialbes
> lb
опечатка
Аноним 11/03/15 Срд 18:42:17 #55 №448816 
>>448812
for (int count = 0; count < this->numberOfVarialbes; count++)
{ this->matrixA[ count ] = new double[ count ]; }
Ты выделяешь count памяти на каждый массив, а потом работаешь с matrixA, как если бы выделил numberOfVarialbes. И так везде.
Аноним 11/03/15 Срд 18:44:52 #56 №448819 
>>448816
А как нужно-то? Туплю, извини.
Аноним 11/03/15 Срд 18:46:12 #57 №448820 
>>448819
this->matrixA[ count ] = new double[ this->numberOfVariables ]
Ну или если тебе и не нужно столько памяти, то поправь все места, где ты с массивами работаешь.
Аноним 11/03/15 Срд 18:46:17 #58 №448821 
>>448819
new double[ numberOfVarialbes ]
Аноним 11/03/15 Срд 18:48:33 #59 №448823 
А лучше вообще выкинуть нахуй сишные массивы и юзать vector или array.
Аноним 11/03/15 Срд 18:49:33 #60 №448826 
>>448823
Двачую. Там еще в buildIterativeForm такая же ошибка. Я удивлен, что оно вообще хоть как-то работает.
Аноним 11/03/15 Срд 18:52:16 #61 №448828 
>>448823
Да я знаю. Просто изначальный вариант у меня очень годно вписывался в обычные сишные массивы и не хотелось работать с вектором. Плюс я из си пришел, и векторы меня немного смутили.

>>448820
А, блядь, я понял где ошибка.
Я типа создавал массивы
Первый массив - 1 элемент
Второй массив - 2 элемента
etc.
А надо
Первый массив - n элементов
Второй массив - n элементов
sageАноним 11/03/15 Срд 18:56:45 #62 №448831 
Красаучеги, я вот не заметил этот ссаный размер массива массив.
Ну и да, голые массивы выкинь к хуям, используй контейнеры, vector, list, например. Базарю, еще захочешь.
Аноним 11/03/15 Срд 19:02:49 #63 №448833 
Лел. Наладил распределение памяти. Все заработало. Удивлен, что это вообще работало, лол. А ведь если бы я не пердолился и под шлинуксом и под Windows, то я б даже и не заметил.

Пока писал эту программу открыл для себя море всяких охуенных вещей.

>>448831
>используй контейнеры, vector, list, например.
Я перепишу в ближайшее время. Как сказал выше, я просто переписывал эту пограмму с классом, поэтому решил не сильно отходить от первой версии программы.

Мне там кто-то звездочку поставил. Теперь буду его своим говнокодом развлекать. Лол.
sageАноним 11/03/15 Срд 19:06:21 #64 №448834 
>>448833
Мелкомягкий компилятор вообще весьма странно работает с памятью. У него там своя атмосфера.
Аноним 11/03/15 Срд 19:13:57 #65 №448837 
>>448834
Хуй знает. Мне мой знакомый, который йоба плюсовый программер, сказал, чтобы я дрочил visual studio. Может стоит подключить GCC к ней?

Хочу в перспективе прикрутить окошечки. Какие GUI будет лучше использовать с точки зрения востребованности, лол? На чем нынче в ынтерпрайзе окошки рисуют?
Аноним 11/03/15 Срд 19:16:39 #66 №448841 
>>448837
>GUI
QT.
Аноним 11/03/15 Срд 19:17:35 #67 №448842 
>>448841
А как насчет веб-движков? Я вот смотрю и вижу, что у меня дохуя софта использует какой-нибудь вебдвижок - skype, msvs, etc.
sageАноним 11/03/15 Срд 19:17:43 #68 №448843 
>>448837
И где работает твой знакомый?
>>448841
Плюсую.
Аноним 11/03/15 Срд 19:18:29 #69 №448844 
>>448842
>C++
>веб
Лучше выбери что-нибудь одно.
Аноним 11/03/15 Срд 19:19:39 #70 №448846 
>>448837
Попробуй clang, они вроде уже выкатили поддержку.

По IDE - либо студия, либо vim, лол. Под пердоликс не видел требований конкретной ide.

Про особенности работы с памятью в студии - есть debug new, есть обнуление выделяемой памяти по new[], что не оговорено стандартом.
Аноним 11/03/15 Срд 19:20:20 #71 №448847 
>>448844
Или ты имел в виду просто контент в десктоп-приложении отобразить? Ну гугл говорит, есть такая хуйня: http://doc.qt.io/qt-5/qtwebview-index.html
Аноним 11/03/15 Срд 19:21:08 #72 №448848 
>>448846
code::blocks еще вполне юзабельно.
Аноним 11/03/15 Срд 19:21:34 #73 №448849 
>>448846
Блин, GUI, а не IDE. Жопой прочитал.
Qt учи. Там свой ламповый с++
Аноним 11/03/15 Срд 19:22:43 #74 №448850 
>>448847
Хотя блять, это же только на мобилах. Тогда хуй знает, я сам QT не юзал.
Аноним 11/03/15 Срд 19:23:19 #75 №448851 
>>448848
Кодблокс, силайон, нетбинс, qt ide. Много их. Но студию требуют из-за mfc/atl/wtl. На пердоликсе таких требований нет.
Аноним 11/03/15 Срд 19:23:21 #76 №448852 
>>448843
Не буду писать. Он тут где-то сидит. Тут и познакомились. Да и он во мне разочаровался, хмык.

>>448844
А чем плохо? Сверстал заебатый интерфейс на html/css/js и прикрутил к программке. Любая веб-макака разберется. Просто сколько я не видел QT приложений средней руки везде очень косячно реализован этот QT интерфейс. Вот, вроде бы, все работает, но как-то не так. Подобное ощущение было с Anki. Не знаю, как у них там сейчас.

>>448848
Он, совместно с gcc, помог найти мне ошибку с выделением памяти.

>>448849
Ну окей. QT, так QT. Хотя может ещё чего-нибудь посмотрю.
sageАноним 11/03/15 Срд 19:25:40 #77 №448853 
Пишите блять правильно, заебали. Qt.
>Qt
>Qt
>Qt
>Qt
>Qt
>Qt
>Qt
QT - это QuickTime, плеер такой. Пидоры.
Аноним 11/03/15 Срд 19:28:27 #78 №448855 
>>448853
Кого ебет-то? Правильно, только тебя.
>QT
>QT
>QT
>QT
sageАноним 11/03/15 Срд 19:30:37 #79 №448857 
14260914373160.png
>>448852
>очень косячно реализован
Ну хуй знает, у меня все нормально. Тебе какие-то парашные приложения попадались.
Алсо,
>Не буду писать.
Вот и не пизди тогда. Я на словах тоже супермен.
sageАноним 11/03/15 Срд 19:31:33 #80 №448858 
14260914932320.jpg
>>448855
Мать твою в жопу хач ебет, гнида.
Аноним 11/03/15 Срд 19:32:47 #81 №448859 
>>448857
>Я на словах тоже супермен.
Ну он не давал свое согласие на распространение данных на сосаче. В любом случае, этому человеку я очень благодарен, а то я бы сейчас сидел бы и клепал формочки для сайтов.
Аноним 11/03/15 Срд 19:33:26 #82 №448860 
>>448858
Что-то ты злой. Не выспался? В говно на улице наступил? Не горюй, все наладится.
sageАноним 11/03/15 Срд 19:39:43 #83 №448863 
>>448860
Ну блять, неужели нельзя писать правильно? Коробит, вот и злой. Нигде блять QT не пишут, везде Qt, нет, будет писать неправильно.
Аноним 11/03/15 Срд 19:55:31 #84 №448873 
>>448837
Пробуй GCC.
Как IDE можешь взять CodeBlocks.
Очень удобно для кроссплатформы.
На работке, как раз, хуярю мелкие модули, для к-х необходима работа на маке, лине и шинде.
Даже достаточно копирнуть папку с проектом, чтобы сразу приступить к работе на другой ОС.

Ну и мелких компиль достаточно неприятная вещь, когда пишешь код под несколько ОС.
Доводилось портировать код из студии, жопа горела только так, особенно от рандомных segm fault, ибо накосячено, но компиль сжевал.
Хотя студия охуенная IDE, правда жрёт не в меру, да падает.
Аноним 11/03/15 Срд 20:00:54 #85 №448874 
>>448873
>портировать код из студии
Кек. Same shit. Пока переписывал тот калькулятор с поддержкой классов и вообще все по уму - копировал некоторые части. Блядь, не важно зачем. Студия выдавала просто тонны ошибок, которые хуй поймешь, как фиксить. Но лечились они тупо переписыванием того же кода от руки. Пиздос.


Олсо, ещё раз про горшки из прошлого треда. Я тут гуглил за архитектуру приложений и нашел линк -http://www.cplusplus.com/articles/48TbqMoL/

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

sageАноним 11/03/15 Срд 20:05:02 #86 №448875 
>>448874
Только если знаешь, что делаешь и зачем это надо. Не стоит.
Аноним 11/03/15 Срд 20:09:57 #87 №448877 
>>448875
>что делаешь
Имею слабое представление, как работают библиотеки.

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

Олсо, пока идей практически нет. Планирую, как и с этим какульятором - тупо реализовывать частями, а там уж, как получится.
Сначала запилю/найду обертку для SQLite и JSON парсер, потом надо придумать как выполнять задачи в определенные моменты времени. Типа, как cron, но только своими руками, что ли. По этому вопрос я вообще ничего не гуглил. Ну и язык садоводов запилить. Он должен быть простым, но очень описательным.
Аноним 11/03/15 Срд 20:11:21 #88 №448878 
>>448874
Только если нужно подключать программу, как ПЛАГИН.
На работке кроссплатформенный ядро, к к-му уже подключаются платформозависимые плагины. Что dll, что остальные.
Аноним 11/03/15 Срд 20:13:13 #89 №448881 
>>448878
О, вот это вообще тема была бы. Но мне кажется дохуя сложно и сначала надо логику приложения проработать, а то на деле нихуя нет, язык знаю на уровне /память брызжет из всех дыр/, а амбицией дохуя.
sageАноним 11/03/15 Срд 20:28:16 #90 №448885 
Пиздец. Плагин нужен, когда ты заранее не знаешь, какие еще возможности прикрутишь к своему велосипеду, либо когда возлагаешь часть обязанностей на сторонних разработчиков (пример - всякие плагины для IDE).
Вынесение части приложения в библиотеку нужно тогда, когда там есть функции, которые будут использоваться плагинами.
Все. Просто так, для логического разбиения одного проекта плагины/библиотеки не используются. Это бред и лишнее переусложнение. Раскидывай сырцы по подпапкам и будет тебе логическое разделение, а плагины совсем не для этого. Подразумевается, что без плагина твое подели будет работать так же, как и с ним, только какой-то определенной свистоперделки не будет.
Аноним 11/03/15 Срд 20:30:22 #91 №448887 
>>448885
Не ругайся, ну.
У меня сейчас пока нет никаких идей, как организовать структуру проекта. Поэтому я перебираю возможности.
sageАноним 11/03/15 Срд 20:36:19 #92 №448890 
>>448887
src
src/database
src/core
src/gui
src/gui/dialogs
Идея понятна?
sageАноним 11/03/15 Срд 20:38:48 #93 №448893 
>>448890
Нахуй иди, выблядок.
sageАноним 11/03/15 Срд 20:42:03 #94 №448899 
>>448893
Дед твой выблядок.
Аноним 11/03/15 Срд 20:43:17 #95 №448902 
>>448890
Я сейчас за организацию классов. Куда какие пихать и какой функционал им давать. Впрочем, от твоего поста пару идей появилось.
Наверное, надо тупо садиться и пилить.
sageАноним 11/03/15 Срд 20:46:36 #96 №448905 
>>448902
>организацию классов
А какое отношение имеют плагины и библиотеки к организации классов?
>Наверное, надо тупо садиться и пилить.
Неужели хоть до кого-то дошло.
Аноним 11/03/15 Срд 20:51:15 #97 №448908 
>>448885
Ещё можно в статические либы выносить функционал для ускорения сборки и модульного тестирования.
Аноним 11/03/15 Срд 20:52:27 #98 №448911 
>>448905
>А какое отношение имеют плагины и библиотеки к организации классов?
Без понятия. Мне в прошлом треде сказали, что я пилю God Object и послали додумывать. Поэтому додумываю гугля "application C++, applicatcion arhitecture".

>Неужели хоть до кого-то дошло.
Ну вот некоторое время назад я запилил программку, которая общается с другой через сокеты виндовые. Это тоже включу в проект. Сегодня вот эту лапшу, которая считает корни СЛАУ. На пути к успеху.
sageАноним 11/03/15 Срд 20:57:31 #99 №448914 
>>448911
Неправильно гуглишь. Лучше что-то вроде "c++ class hierarchy", "c++ project structure".
Молодец.
sageАноним 11/03/15 Срд 22:26:07 #100 №448949 
>>448914
Маме привет.
sageАноним 11/03/15 Срд 22:39:24 #101 №448951 
>>448949
Обязательно передам твоей маме привет, как раз ебу ее сегодня.
Аноним 11/03/15 Срд 22:53:27 #102 №448954 
>>448951
Ебешь собственную мамашу, чулочник-с-сажей?
Аноним 12/03/15 Чтв 00:15:43 #103 №448995 
14261085437300.jpg
писал в рошлем треде помочь исправить ошибки, позже понял что тема гораздно глубже и обрней, так вот:
Есть код на ассемблере вырванный с помощью ollydbg , нужно перепилить его под gcc. Я пытался осилить несколько статей, они дают очень много инфы которую мой мозг не может осилить, запилите пожалуйста короткий гайдец по быстрому переводу а-ля PUSH EAX -> pushl %eax если я правильно понял
Аноним 12/03/15 Чтв 01:48:26 #104 №449020 
>>448995
Палю годноту, раз ты не в состоянии прочитать мануал и написать сам:
1) Канпелируешь интеловый код.
2) objdump -D
Алсо, тебе сюда >>447420
sageАноним 12/03/15 Чтв 01:50:51 #105 №449021 
>>448954
Твою, хуеглотик. :3
Аноним 12/03/15 Чтв 01:58:11 #106 №449023 
>>449020
я наврно слишком тупой чтобы понять что ты имеешь ввиду. Если можно, еще раз для дебилов пожалуйста
Аноним 12/03/15 Чтв 02:03:51 #107 №449025 
>>449023
точнее, я не понимаю что конкретно нужно. Вставить в с++ билдер код ассемблера, скомпилить-????.
Или просто скомпилить проект с меткой objdump -D
Аноним 12/03/15 Чтв 10:48:58 #108 №449069 
Расскажите про работу с сетью в крестах. Есть какие-то стандартные средства/библиотеки для этого? В гугле все примеры разные, один охуительней другого.
Аноним 12/03/15 Чтв 11:15:43 #109 №449076 
>>448828
Вот поэтому новичкам рекомендуется использовать std::vector и try-catch хотя бы в int main() {}. Сразу словишь out_of_range exception.

int main()
try {
//...
return 0;
}
catch (exception& e) {
cerr << "error: " << e.what() << '\n';
return 1;
}
catch (...) {
cerr << "Oops: unknown exception!\n";
return 2;
}

catch (exception& e) -- это ловит out_of_range и runtime_error. catch (...) -- это ловит всё остальное, кроме аппаратных ошибок. Деление на ноль считается аппаратной ошибкой в C++ , поэтому за делением на ноль придётся следить только самому.
Аноним 12/03/15 Чтв 11:18:30 #110 №449078 
>>448828 >>449076

Блядский потрох, табы распознать не может. Fix с помощью alt + 255 четыре раза.

int main()
try {
    //...
    return 0;
}
catch (exception& e) {
    cerr << "error: " << e.what() << '\n';
    return 1;
}
catch (...) {
    cerr << "Oops: unknown exception!\n";
    return 2;
}
sageАноним 12/03/15 Чтв 12:49:06 #111 №449089 
>>449021
>>449025
Читать научись: https://2ch.hk/pr/res/441690.html#448305
sageАноним 12/03/15 Чтв 12:50:45 #112 №449091 
>>449069
Стандарта нет. http://stackoverflow.com/questions/118945/best-c-c-network-library
Аноним 12/03/15 Чтв 14:10:45 #113 №449123 
У меня будет очень тупой вопрос, но мне - честно - влом его гуглить, потому что вопрос я задаю из праздного любопытства, а не из-за того, что laba2 горит. shift + 8 обозначу за @, потому что макаба. Можно ли объявить массив

>unsigned int rows = 12; //for example
>int@@ m2 = (int@@)std::malloc(rows @ sizeof(int@));

А дальше напихать в него rows штук строк разной длины? Ну так, прост))
Аноним 12/03/15 Чтв 14:18:44 #114 №449128 
>>449123
> 2015
> объявить массив
> malloc
Аноним 12/03/15 Чтв 14:20:21 #115 №449129 
>>449128
> 2014
> богомерзкие кресты
> не православный си
Аноним 12/03/15 Чтв 14:24:16 #116 №449131 
>>449123
Можно.
sageАноним 12/03/15 Чтв 14:31:04 #117 №449135 
>>449123
Можно тебе хуев в рот напихать, долбоеб.
Аноним 12/03/15 Чтв 14:31:18 #118 №449136 
вобщем нужнов процессе выделить память и записать в него свою функцию, делаю это по статье, в оной используется с++ билдер. Как реализовать это на gcc ?

HANDLE hProcThread;
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, false, PID);

void ta = (void)VirtualAllocEx(hProcess, NULL, 255, MEM_COMMIT, PAGE_READWRITE);
WriteProcessMemory(hProcess, ta, func, 250, NULL);
void pp = (void)VirtualAllocEx(hProcess, NULL, 255, MEM_COMMIT, PAGE_READWRITE);
WriteProcessMemory(hProcess, pp, params, 250, NULL);

hProcThread = CreateRemoteThread(hProcess, NULL, NULL, (LPTHREAD_START_ROUTINE)ta, pp, NULL, NULL);
Собственно код. Создается два указателя на выдеенную память в процессе, мы записываем в первый - указатель на функцию, во 2 - указатель на переменные для функции, потом создаем поток выполнрения.
Проблема состоит в том, что указатель на функцию выглядит как (void)(), при этом VirutalAllocEx не может выделить память под ТАКОЙ указатель, а также для создания потока тоже требуется указатель типа void. Как это реализовать ? Первые несколько советов из гугла по запиливанию каста (void)() to (void) приводят к ошибке компиляции. Кто сталкивался? Как справляться с этим.
п.с. в фунцкции создания потока требуется на (void) а LPTHREAD_START_ROUTINE , при этом к этому типу спокойно приводится сам void.
Аноним 12/03/15 Чтв 14:46:41 #119 №449145 
>>449131
Спасибо.

>>449135
Это безусловно.
sageАноним 12/03/15 Чтв 17:05:37 #120 №449197 
>>449136
Где статья? Где код нормальный (хинт: pastebin/ideone)?
Аноним 12/03/15 Чтв 17:11:02 #121 №449204 
>>449197
статья - с жука по инъекции кода в ммо гаму.
кода там много не нужно там пара команд
я же описал проблему: мне нужно зарезервировать в процессе участок памяти, скопировать туда функцию на ассеблере и заэкзекутить. Я показал решение описанное в одной годной статье, но она на с++ билдер. В gcc я столкнулся с проблемой - указатель на функцию не имеет вид void*, как это собственно обойти ?
Аноним 12/03/15 Чтв 17:37:02 #122 №449221 
>>449204
Конвертируй через union. Чтобы запустить код в памяти, надо еще поставить разрешение через VirtualProtectEx
sageАноним 12/03/15 Чтв 17:37:54 #123 №449222 
>>449204
Ссылку давай.
Если ты не заметил, то в том куске кода, что ты скинул, напрочь проебана разметка. Залей его на pastebin.
>указатель на функцию не имеет вид void*
Чет я не понял тебя. Привести указатель к нужному типу, не?
Аноним 12/03/15 Чтв 19:07:30 #124 №449269 
Поможет кто перевести на с++?
http://ideone.com/nPPN0P
sageАноним 12/03/15 Чтв 19:09:36 #125 №449271 
>>449269
Да не вопрос http://ideone.com/GM3SAO
Аноним 12/03/15 Чтв 20:23:06 #126 №449302 
>>449222
ладн, ща все оформлю как стоило бы.

Я пытаюсь играть с памятью процессов, данные как бы считыват ья научился, следующий этап - иньектирование функций. Учу я это на примере вовчика 3.3.5. Я выдераю нужную функцию из ollydbg, реализую ее как асм вставку в с++ коде. Потом открываю процесс игры - выделяю себе память, копирую в эту память функцию и параметры, потом запускаю поток выполнения функций по указателям. Все бы ничего только указатели на функцию и void - разные вещи. Посему функция выделения памяти в процессе требует void, создание потока требует тип LPTHREAD_START_ROUTINE, однако тип void легко преобрзауется к этмоу типу. А сама функция - точнее указатель на нее - (void)(). Ошибка компиляции итдитп ЧЯДНТ?
http://pastebin.com/B9kAEJgE
Аноним 12/03/15 Чтв 20:26:04 #127 №449303 
>>449302
http://zhyk.ru/forum/showthread.php?t=207760
http://zhyk.ru/forum/showthread.php?t=414162
Да, те треды. На с++билдер и делфи все вроде преобразуется гладко
Аноним 12/03/15 Чтв 20:35:50 #128 №449306 
>>449302
Какая ошибка-то? Скопипасти, блять. У меня gcc конструкцию http://pastebin.com/LfEr0dFQ отлично компилирует.
Аноним 12/03/15 Чтв 20:59:15 #129 №449314 
>>449306
Не поверишь,
void params_2 = (void)(&SimpleVoidF); - работает с предупреждением, а как у тебя скомпилило
void params_1 = (void)SimpleVoidF; понятия не имею
Спасибо уж, не думал что я настолько криворук
Аноним 12/03/15 Чтв 21:01:42 #130 №449315 
>>449314
Название функции без скобок - уже можно приводить к указателю, & конечно там нахуй не нужен.
Аноним 12/03/15 Чтв 21:04:09 #131 №449317 
>>449315
target.cpp:105: error: invalid use of member (did you forget the '&' ?)
void func = (void)SimpleVoidF;
^
мда.
Аноним 12/03/15 Чтв 21:05:05 #132 №449318 
>>449317
SimpleVoidF - это что за функция? Где объявлено и как?
Аноним 12/03/15 Чтв 21:06:13 #133 №449319 
>>449318
void TARGET::SimpleVoidF(){}
Аноним 12/03/15 Чтв 21:10:38 #134 №449320 
>>449319
Тогда надо &, да. Если внутри класса указатель на его же функцию берешь.
Аноним 12/03/15 Чтв 21:11:34 #135 №449321 
>>449320
И функция не статическая.
Аноним 12/03/15 Чтв 21:12:22 #136 №449322 
>>449321
>>449320
мы только учимся
на самом деле я этого не знал
даже записал себе, лол
Аноним 12/03/15 Чтв 21:18:07 #137 №449325 
вобщем, пока такие дела если мне пишет - саксесфули инджектет e.g. дескриптор hProcThread не нулевой - значит все пашет?
http://pastebin.com/n4iHaM1B
Аноним 14/03/15 Суб 20:42:29 #138 №450109 
Да вы и мамку свою потопите, суки. Бамп!
Аноним 15/03/15 Вск 00:48:52 #139 №450229 
arithmetic if может быть вложенным? Т.е. один внутри другого.
sageАноним 15/03/15 Вск 01:23:39 #140 №450257 
>>450229
Если ты имеешь в виду ? : то да.
 Аноним 15/03/15 Вск 05:50:12 #141 №450283 
14263878124920.jpg
>>448467
Через цикл с условиями, в приклейтед пример работы наполнения массива и вывода
Аноним 15/03/15 Вск 06:22:32 #142 №450284 
>>448467
array.sorted
Аноним 15/03/15 Вск 09:29:15 #143 №450294 
>>450257
Зачем тогда if else нужны вообще, кроме многократной вложенности. Взял зафигачил в одну строчку три возможных условия.
Аноним 15/03/15 Вск 09:34:35 #144 №450297 
>>450294
Т.е. я хотел сказать, что если всегда есть арифметическое действие как для if, так и для else, не лучше ли arithmetic if фигачить в таком случае.
sageАноним 15/03/15 Вск 10:00:38 #145 №450298 
>>450283
>#include <conio.h>
Как там в 98?
sageАноним 15/03/15 Вск 10:13:15 #146 №450301 
>>450297
Не лучше. Получается нечитаемая дрисня вместо кода, если действия достаточно длинные, типа
(a == b && c == d) ? longObjectName->someShit(shittyArgument)->pssssss(a, b, c, d, e, f, yourMum) : fuckingYourMum(Mum::Ass | Mum::Vagina).cumOnFace(2);
Это не говоря уже о том, что два действия ты в одну ветку не запихнешь, и действия с разным типом возвращаемого значения тоже.
Аноним 15/03/15 Вск 10:15:32 #147 №450303 
>>450301
Я про в случае абсолютно одинакового действия и абсолютно одинакового типа.

Просто или писать отдельную функцию на экран с ветвлениями, или три строчки по три вложенных арифметических ифа с комментариями. Никаких вызовов функций, ничего.
sageАноним 15/03/15 Вск 10:19:37 #148 №450305 
>>450303
Ну тогда можно и так, но считается, что это менее наглядно (когда бегло просматриваешь код). Хотя я, бывает, сам использую, чтобы не раздувать код почем зря.
Аноним 15/03/15 Вск 10:40:09 #149 №450311 
>>450305
Всё-таки сделаю в три строчки.
Аноним 15/03/15 Вск 12:43:33 #150 №450335 
#include <iostream>
#include <cmath>
using namespace std;
int f1(int i) {
i=2;
return i;
}
int main () {
int i =1;
f1(i);
int f1_result = f1 (i);
cout<<i<<endl;
return 0;
}
Не работали глобальные переменные, решил проверить на тривиальном примере, всё равно не пашет.
подскажите плз (ответ кстати от наличия int f1_result = f1 (i ); не зависит), только начал учить программирование
Аноним 15/03/15 Вск 12:50:37 #151 №450336 
>>450335
>Не работали глобальные переменные
Но тут нет ни одной глобальной переменной.
sageАноним 15/03/15 Вск 13:00:34 #152 №450338 
>>450335
В чем проблема то?
Аноним 15/03/15 Вск 13:00:36 #153 №450339 
>>450336
То есть её нужно прописать до int main? Ок, щас попробую.
Аноним 15/03/15 Вск 13:02:09 #154 №450340 
>>450338
На экран выводит "1", а не "2", то есть функция не возвращает значение аргумента.
Аноним 15/03/15 Вск 13:08:40 #155 №450342 
>>450339
Лол.
ГЛОБАЛЬНАЯ = переменная определенная глобально, т.е. ты можешь получить доступ к ней из любой части программы.
Переменная, объявленная в теле функции, считается локальной.

>>450340
Ну так ты посмотри на код внимательно.
1. Определяешь переменную i = 1.
2. Определяешь переменную f1_result.
3. Передаешь в качестве параметра в функцию f перменную i.
4. ВЫВОДИШЬ ПЕРЕМЕННУЮ I.

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


Аноним 15/03/15 Вск 13:14:19 #156 №450344 
14264144590730.jpg
>>450336
>>450338
добавил глобальную
вопрос в том, почему функция не возвращает новое значение i
да, я не понимаю очевидных вещей, поэтому и сижу в этом треде
Аноним 15/03/15 Вск 13:21:01 #157 №450345 
>>450344
https://ideone.com/dweN0Y
Аноним 15/03/15 Вск 13:26:28 #158 №450350 
>>450344
Да, забыл прокомментировать. Ты пишешь
f1(int i) -- это ты объявил ЛОКАЛЬНУЮ переменную внутри функции i. И ты её возвращаешь.
Аноним 15/03/15 Вск 13:28:52 #159 №450352 
>>450345
Спасибо огромное
>>450350
понял, спасибо
sageАноним 15/03/15 Вск 13:29:04 #160 №450353 
Ты передаешь переменную по значению, а не по ссылке, потому она и не меняется. Внутри функции у тебя создается копия i. Глобальность тебе не поможет никак, потому что i внутри функции перекрывает внешнюю i.
Как же вы заебали, читайте книжки.
Аноним 15/03/15 Вск 13:36:15 #161 №450354 
>>450353
Поддвачну этого сажееба. В книжках обычно есть целая куча показательных примеров. Если этого не хватило - интернет в помощь.

В каждом тредике раз за разом спрашивают какой-то треш, который на первых 10 страницах в любом учебнике написано.

Куда интересней обсуждать какие-то ошибки. Да.

>>448799 -мимо обосравшийся.
Уже два фоловера, лол.
Аноним 15/03/15 Вск 16:32:07 #162 №450443 
Какого блядь хера std::type_info некопируемый? Зачем, а главное, нахуя это сделали? T_T
Аноним 15/03/15 Вск 16:39:15 #163 №450447 
>>450443
В глаза ебешься?
"See type_index for a wrapper class that adapts type_info values to make them copyable and indexable with standard hash values."
Аноним 15/03/15 Вск 16:44:38 #164 №450452 
>>450447
Yob tvoyu za nogu, спасибо!
А то я уж начал писать свой обёрточный класс.
Аноним 15/03/15 Вск 17:15:54 #165 №450467 
14264289546970.png
пикрелейтед после вставки в qt пастрелейтед, что не так ?
http://pastebin.com/vb73aktN
Аноним 15/03/15 Вск 17:53:04 #166 №450484 
Есть
struct Polygon
{
vector<Point> points;
...
};

Как проще всего сделать так, чтобы у меня появился конструктор, который мог принимать бы в качестве параметров произвольное количество точек?
Думал про variadic function, но там, как я понимаю, не обойтись без передачи еще и количества точек в конструктор, а без этого можно как-нибудь сделать?
Аноним 15/03/15 Вск 18:16:26 #167 №450501 
>>450484
Передавай вектор точек.
Аноним 15/03/15 Вск 18:18:53 #168 №450504 
>>448310
Крестопетухи должны страдать.
Аноним 15/03/15 Вск 18:21:19 #169 №450505 
>>450484
Еще std::initializer_list посмотри.
sageАноним 15/03/15 Вск 19:20:45 #170 №450538 
>>450467
Скорее всего какие-то флаги надо передать компилятору. Смотри тут: https://2ch.hk/pr/res/441690.html#448305
Аноним 15/03/15 Вск 20:35:38 #171 №450592 
>>450501
Ну да, конструктор есть, но каждый раз писать vector <Point> .. это же убого как-то
>>450505
Добра тебе
g++ 4.6.3 Аноним 15/03/15 Вск 20:45:45 #172 №450604 
Если добавить в команду сборки -std=c++0x я могу точно сказать что я программирую на с++ 11-й версии? Или 14-й... Как 14-ю включить?
Аноним 15/03/15 Вск 21:29:57 #173 №450624 
14264441979900.gif
Антон, с чего начать работу с графикой? Основы знаю, в ООП могу, но не знаю как делать не-консольные программки
Аноним 15/03/15 Вск 21:35:09 #174 №450627 
>>450624
Вау. gif-ка 10/10.

Qt
GTKmm
wxWidgets
FLTK
...
Аноним 15/03/15 Вск 21:47:37 #175 №450632 
>>450538
если я все правильно понимаю, %0 - первая переданная после : переменная, %1 - 2я ?
sageАноним 15/03/15 Вск 21:51:38 #176 №450634 
Я считаю, что объединенный для C и C++ тред не нужен. Я программист на C++, мне на C похуй.
Аноним 15/03/15 Вск 21:56:45 #177 №450637 
>>450604
-std=c++11 для 11
-std=c++14 для 14
Но вроде в gcc 14 пока нет, а в clang - есть, но со стандартной библиотекой от gcc не работает, так что у меня 14 работает только через кланг -std=c++11 -stdlib=libc++
sageАноним 15/03/15 Вск 22:42:46 #178 №450654 
>>450637
>в gcc 14 пока нет
Есть, и уже довольно давно.
>>450632
Вроде да.
>>450627
>Qt
>GTKmm
>wxWidgets
>FLTK
Починил тебя.
Аноним 15/03/15 Вск 22:43:04 #179 №450655 
Есть какие-нибудь простенькие фреймворки для создания простого gui? Тяжеловесное говно qt с шестью виртуал поинтерами в QVariant не заезжает
нано-оптимизация Аноним 15/03/15 Вск 22:51:26 #180 №450659 
switch(arr [ i ] )
{
case 1: //lala
case 2: //lalala
case 3: //ololo
default: //something
}

Свитч от i-того элемента массива. Стоит завести отдельную переменную int temp = i-тый элемент массива или нет? Важна скорость.

Данный свитч находится в цикле порядка миллиона раз.
Аноним 15/03/15 Вск 22:51:30 #181 №450660 
>>450655
Winapi
g++ 4.6.3 15/03/15 Вск 22:52:40 #182 №450661 
>>450637
если пишу -std=c++11 ругается на неизвестную команду.
если -std=c++0x то сам не понимаю что значит "0x"
Аноним 15/03/15 Вск 22:52:51 #183 №450662 
>>450659
Если эта переменная не изменяется в кейсах, то компилятор все сам сделает
Аноним 15/03/15 Вск 22:53:33 #184 №450663 
>>450661
Обнови до 4.7.*
Аноним 15/03/15 Вск 22:54:51 #185 №450666 
>>450662
О заебись, умный какой конпелятор. Спасибо.
Аноним 15/03/15 Вск 22:57:25 #186 №450670 
>>450662
Усложним вопрос.

switch(abs(arr [ i ] ))
{
case 1: //lala
case 2: //lalala
case 3: //ololo
default: //something
}

Свитч от модуля i-того элемента массива. Стоит завести отдельную переменную int temp = abs( i-тый элемент массива ) или нет? Важна скорость.

Данный свитч находится в цикле порядка миллиона раз, как и прежде. Никаких дополнительных чтений/изменений к собственно массиву внутри кейсов/дефолта нет.
Аноним 15/03/15 Вск 22:57:54 #187 №450671 
>>450660
9смех0
sageАноним 15/03/15 Вск 23:09:45 #188 №450679 
14264501858170.jpg
>>450670
вопрос уровня С+++++++++++++++++++++++++++++++++==
Аноним 15/03/15 Вск 23:12:32 #189 №450682 
>>450670
Аналогично.
Главное, чтобы значение в switch было инвариантом относительно cases
Аноним 15/03/15 Вск 23:27:36 #190 №450690 
>>450679
>>450682
Спасибо, я просто реально не понимаю, в какие моменты компилятор способен оптимизировать, а в какие нет. Какие вещи формально просто задать, а какие нет.

Какой код из условий, например, компилятор догадается может соптимизировать до уровня свитчей, или это принципиально первышает полномочия оптимизации.
sageАноним 16/03/15 Пнд 02:19:08 #191 №450750 
Хочу выделенные строки CheckListBox1 добавить в Edit1, для дальнейшего создания sql запроса, проблема в том что на "s+=CheckListBox1->Items;" вылетает ошибка
[E2094 'operator+=' not implemented in type 'AnsiString' for arguments of type 'TStrings'

void __fastcall TForm4::Button2Click(TObject *Sender)
{
int i;
AnsiString s;

{
s="Select";
for (i=0;i<CheckListBox1->Count-1;i++)
{
if (CheckListBox1->Checked)

s+=CheckListBox1->Items;

Edit1->Text=s;
}
}
}
sageАноним 16/03/15 Пнд 02:35:33 #192 №450752 
>>450750
Пошел на хуй, спепмоклоун. Потрудись хотя бы включить мозг и изучить основы языка.
sageАноним 16/03/15 Пнд 02:36:10 #193 №450753 
>>450752
>спермоклоун
sageАноним 16/03/15 Пнд 02:38:39 #194 №450754 
>>450655
Винапи уже советовали? Еще рекомендую посмотреть в сторону ассемблерных вставок - очень легковесно, самое то для школооптимизатора.
sageАноним 16/03/15 Пнд 02:46:54 #195 №450758 
>>450752
Не туда видимо попал, спасибо за понимание, и вам всего хорошего
Аноним 16/03/15 Пнд 08:56:28 #196 №450804 
>>450752
Почему ты так ненавидишь окна?
Аноним 16/03/15 Пнд 09:36:12 #197 №450810 
14264877725960.png
Обьясните нафане, почему в нулевом элементе массива n, не единица?
Аноним 16/03/15 Пнд 09:37:17 #198 №450811 
>>450484
Полигон это 3 точки. 4 это квад, 2 это линия. Нахуя тебе vector вообще? Используй std::array.
Аноним 16/03/15 Пнд 09:39:15 #199 №450812 
>>450634
Поссал на хуесоса.
Аноним 16/03/15 Пнд 09:41:53 #200 №450813 
>>450690
Компилято способен оптимизировать все rvalue, так что всякие нанооптимизации вроде вынести переменную - бред сивой кобылы. Оптимизируй алгоритмы и пиши грамотный код, а не занимайся всякой херней.
Аноним 16/03/15 Пнд 09:43:16 #201 №450814 
>>450654
>Есть, и уже довольно давно.
Аж с декабря прошлого года в dev-версии.
Аноним 16/03/15 Пнд 09:45:05 #202 №450815 
>>450810
ггли endianness
Аноним 16/03/15 Пнд 09:59:22 #203 №450817 
>>450655
JavaFX
Аноним 16/03/15 Пнд 10:02:31 #204 №450818 
>>450815
Спасибо, я то думал, почему 16777216, выводит.
Аноним 16/03/15 Пнд 10:02:38 #205 №450819 
>>450810
А еще ты забыл сделать memset(v, 0, 12), у тебя куча мусора в массиве.
Аноним 16/03/15 Пнд 10:10:36 #206 №450820 
>>450819
У меня, видимо по счастливой случайности все байты были по нулям. Но спасибо за совет, приму к сведению.
 Аноним 16/03/15 Пнд 11:07:48 #207 №450827 
>>450298
Это не трудно объяснить...
Учитель застрял в 98,
если не подключаем <conio.h>
бьет розгами смерти
sageАноним 16/03/15 Пнд 11:40:16 #208 №450833 
14264952164740.png
>>450804
Чувство ненависти мне вообще не знакомо, ты не прав. И до шинды мне дела нет, но вот такие дегенераты как он в подавляющем числе случаев используют шинду. Их лучше в детстве топить. Испытываешь ли ты ненависть к комару, который докучает своим глупым жужжанием в бесплодных попытках тебя укусить? Вряд ли. Ты просто хочешь, чтобы он улетел или перестал жужжать. Проще всего его прихлопнуть для этого, либо прогнать. Против остальных виндузятников ничего не имею.
>>450814
Ну кому ты пиздишь. Пикрелейтед.
Аноним 16/03/15 Пнд 13:23:17 #209 №450867 
Почему может некорректно работать std::ostream::write ?

std::string filename = "test";
std::basic_ofstream<uint8_t> ost(filename);

Имеется файл, в котором заполнены 54 байта. Я хочу записать ещё 1024 байта, которые выглядят так: 0 0 0 0 1 1 1 0 2 2 2 0 ... 254 254 254 0 255 255 255 0.

Массив uint8_t* вручную проверил с помощью std::cout, он действительно такой.

Что пишется в файл c 54 по 1077 байт (54 + 1024 = 1078), если просмотреть 16-ричным редактором:

http://pastebin.com/5AbSj5fa

И далее идёт нормально до конца вплоть до ff ff ff 00.

P.S. Попробовал писать в новый файл - та же фигня, ошибка именно 0d 0a 0d 0a 0d 0a 00 .
Аноним 16/03/15 Пнд 13:43:04 #210 №450874 
>>450867
ios_base::binary, дурачок.
Аноним 16/03/15 Пнд 13:46:51 #211 №450877 
>>450874
И сам догадался. У меня вопрос, почему такая херня творится? 10 символ - это новая строка. Что происходит, оно почему-то пишет 13, а затем новую строку?
Аноним 16/03/15 Пнд 13:48:44 #212 №450878 
>>450877
Конвертация символа новой строки в универсальный формат (CR+LF).
Аноним 16/03/15 Пнд 13:56:30 #213 №450880 
>>450878
Спасибо. Хорошо, что на простом примере наебнулся, а то искал бы ошибку в массиве на миллион элементов.

Естественно, буду использовать бинарный режим всегда, когда нужно побитово скопировать.
Аноним 16/03/15 Пнд 14:06:32 #214 №450883 
14265039922580.png
>>450833
>2015
>4.9, 5 или N/A
Насмешил.
Аноним 16/03/15 Пнд 14:35:35 #215 №450892 
Блджад, sizeof( wchar_t ) возвращает 4. А какой тогда из char'ов можно для двубайтового юникода использовать?
sageАноним 16/03/15 Пнд 14:58:05 #216 №450903 
>>450883
Ты на дату смотри. Кроме одной бесполезной фичи все поддерживается.
Аноним 16/03/15 Пнд 17:27:10 #217 №450945 
Аноны, как нарисовать блоксхему функции void?
В программе идет ввод данных, а потом переходим в функцию и оттуда программа заканчивается.
Аноним 16/03/15 Пнд 17:34:31 #218 №450950 
>>450892
dvybaitovyunikod_char_t
sageАноним 16/03/15 Пнд 17:40:56 #219 №450956 
>>450945
>блоксхему
Ссать в рот преподу/увольняться из днищеконторы. Других способов нет.
Аноним 16/03/15 Пнд 17:42:55 #220 №450958 
>>450945
> нарисовать блоксхему
Зашквар такое делать.
Аноним 16/03/15 Пнд 18:12:48 #221 №450968 
>>450945
Также как и обычной функции.
Аноним 16/03/15 Пнд 18:16:02 #222 №450971 
>>450945
То есть и в функции и в программе делать "Конец"? Она ничего не возвращает жеж
Или в функции оставить
Аноним 16/03/15 Пнд 18:23:31 #223 №450976 
Я вам покушать принес: http://blog.gamedeff.com/?p=64

Темы для вопросов на собеседовании на должность C++-программиста:
Всё о наследовании за 3 минуты (зачем нужно, множественное, виртуальное, публичность).
Что такое pure virtual function (зачем надо). «Контракты» в качестве бонуса.
Vtbl, vptr, и прочие детали реализации. Бонус за множественное наследование. Бонус за виртуальное наследование.
Конструкторы, деструкторы, порядок создания и удаления.
Виртуальные функции в конструкторах.
Шаблоны (зачем нужны, что такое специализация, что с производительностью).
Исключения (зачем нужны, производительность, особенности реализации).
new супротив new[] – зачем нужны, особенности реализации.
STL (зачем). Бонус за историческую справку. За 3 минуты о производительности основных типов.
Для любого (вставить «нужное») описать сайд-эффекты, когда не работает и почему. Бонус про «без сайдэффектов».

А вы разбираетесь в C++?
Аноним 16/03/15 Пнд 18:41:17 #224 №450988 
>>450976
Не, ну а что? Хороший мануал, по которому я готовлюсь.
Аноним 16/03/15 Пнд 19:36:51 #225 №451017 
Аноны, только начал учить с++. Чем отличаются cin и cout от printf и scanf?
Аноним 16/03/15 Пнд 19:43:01 #226 №451019 
>>451017
Сорта говна
sageАноним 16/03/15 Пнд 20:02:23 #227 №451026 
>>451017
Продолжай учить и поймешь.
Аноним 16/03/15 Пнд 20:32:55 #228 №451038 
>>450950
Ну бля, нельзя было скзать про char16_t.
Аноним 16/03/15 Пнд 20:36:27 #229 №451043 

Задание: Передвинуть элементы массива a размерности n таким образом, чтобы элемент с индексом new_0 стал начальным, и вернуть индекс, который получил элемент, бывший начальным.

Пусть массив a[5] = {1,2,3,4,5}
new_ 0 = 2, a[new_0] =3

Как получить массив a = {3,4,5,1,2}?
Аноним 16/03/15 Пнд 20:37:23 #230 №451044 
И объясните, пожалуйста, что такое невозрастающая пирамида и как проверить массив на наличие таковой.
Аноним 16/03/15 Пнд 20:53:46 #231 №451055 
>>451044
> невозрастающая пирамида
Если я правильно понимаю это такой массив в котором для каждого i элементы 2i и 2i+1 (если они существуют) меньше либо равны i.
sageАноним 16/03/15 Пнд 20:59:56 #232 №451058 
>>451055
>элементы 2i и 2i+1
имелось ввиду "элементы 2i+1 и 2i+2
sageАноним 16/03/15 Пнд 21:44:48 #233 №451071 
Лел, мартышкина разметка в очередной раз соснула. Поссал макаке в его хачевский ротешник, псссс.
Аноним 17/03/15 Втр 01:16:29 #234 №451212 
Какие опенсорс проекты в порекамендуете к просмтору этим вечером?
Аноним 17/03/15 Втр 01:29:07 #235 №451215 
>>451212
сырцы твоей мамаши
Аноним 17/03/15 Втр 08:18:53 #236 №451239 
Что изучать - ОпенГЛ или Кьюти? Кто из них для чего предназначен?
sageАноним 17/03/15 Втр 11:43:31 #237 №451286 
>>451239
Первый ебет твою мать в жопу, а второй - в рот. Что тебе больше нравится сам выбирай.
Я хуею уже просто с изобретательности природы: это ж надо ТАКИХ даунов порождать.
Аноним 17/03/15 Втр 12:57:38 #238 №451302 
>>451239
вики & гугл из ёр френд

>>451212
ядро разумеется

>>451043
три вращения массива
Аноним 17/03/15 Втр 13:04:48 #239 №451303 
Итак вопрос треда
while(true) или for(;;)
Аноним 17/03/15 Втр 13:07:24 #240 №451305 
>>451043
> Пусть массив a[5] = {1,2,3,4,5}
В голосяндру мам...
Аноним 17/03/15 Втр 13:27:05 #241 №451318 
>>451302
>>три вращения массива

Спасибо, кэп, но я не понимаю, как именно работает rotate(), какие элементы для этого примера где указывать?
Аноним 17/03/15 Втр 14:02:03 #242 №451334 
>>451303
loop:
//...
goto loop;
Аноним 17/03/15 Втр 15:39:55 #243 №451376 
>>451303
return qapp.exec();
Аноним 17/03/15 Втр 15:43:12 #244 №451380 
Привет, программач, я хочу тебе позадавать глупых вопросов.

1) Где лучше располагать объекты по дефолту -- в стэке или в куче? Вообще, как понять, где лучше расположить объект?

2) В MVC пользовательский интерфейс это свойство представления или модели? Если каждой модели нужен свой интерфейс, то как это лучше решить архитектурно?
Аноним 17/03/15 Втр 16:02:03 #245 №451397 
>>451303
for (;;)
Аноним 17/03/15 Втр 16:12:02 #246 №451401 
>>451303
Однохуйственно.
Аноним 17/03/15 Втр 16:33:42 #247 №451411 
>>451380
Пользовательский интерфейс это свойство представления.
> модели нужен свой интерфейс
Все тоже самое. Только под каждую модель получится свой view.
sageАноним 17/03/15 Втр 16:46:46 #248 №451418 
>>451334
насмешил.
А как брякнуться?
Аноним 17/03/15 Втр 16:53:27 #249 №451420 
>>451397
Нука пояснил
sageАноним 17/03/15 Втр 17:10:16 #250 №451425 
>>451420
короче жи. это для кодгольфа.
Аноним 17/03/15 Втр 17:12:19 #251 №451427 
>>451418
Очевидно, внутри if, который делает goto на пониже.

>>451420
Ну, из нескольких соображений. Во-первых, гуглится, что у for (;;) ассемблерный листинг короче. Во-вторых, есть т.н. правило "по возможности используй for, чтобы к тебе не было дополнительных вопросов". В-третьих, писать короче.
Аноним 17/03/15 Втр 17:18:46 #252 №451430 
>>451427
Ну и самое главное забыл, конечно же. Чтобы не получать петушиные кукареканья среды КОНСТАНТ ЭКСПРЕШШЕН ИН КОНДИШЕН
Аноним 17/03/15 Втр 17:27:47 #253 №451431 
>>451427
1) Оптимизация уровня /b/. У тебя таких циклов будет максимум по одному в каждом потоке.

2) Это что-то как-то верно, но вопросов не будет, если будут адекватные условия. Выходить из цикла ты, скорее всего, будешь по условию, поэтому лучший выход это while ( !finished ).

3) Это вообще пушка.
Аноним 17/03/15 Втр 17:49:33 #254 №451439 
>>451380
>2) В MVC пользовательский интерфейс это свойство представления или модели? Если каждой модели нужен свой интерфейс, то как это лучше решить архитектурно?
пользовательский интерфейс --- это скорее всего View+Control
модель всегда едина
Аноним 17/03/15 Втр 18:00:25 #255 №451444 
>>451431
>1) Оптимизация уровня /b/. У тебя таких циклов будет максимум по одному в каждом потоке.
Согласен, но что-то должно перевесить в пользу одного из решений. Т.е. выбрать один раз и делать так всегда.

>>451431
>Выходить из цикла ты, скорее всего, будешь по условию, поэтому лучший выход это while ( !finished ).
Если у меня for(;;) , выходить из цикла я буду с помощью return; подразумевается, что я номрально разбиваю код на функции

>3) Это вообще пушка.
Хуюшка.
Аноним 17/03/15 Втр 18:01:52 #256 №451445 
>>451427
>Во-первых, гуглится, что у for (;;) ассемблерный листинг короче
омг, что за компилятор?
sageАноним 17/03/15 Втр 18:29:49 #257 №451455 
>>451427
> Очевидно, внутри if, который делает goto на пониже.
два гото круче одного
Аноним 17/03/15 Втр 19:10:09 #258 №451472 
>>451455
ну или if на return;
Аноним 17/03/15 Втр 19:17:23 #259 №451476 
>>451427
>>451472
Костыляторы.

bool repeat = true;
loop:
...
if (repeat) goto loop;
sageАноним 17/03/15 Втр 21:54:33 #260 №451553 
>>451476
какой превосходный солюшен
не хотите сменить работу?
Аноним 17/03/15 Втр 22:29:59 #261 №451573 
Блять, сейчас закидаете тухлыми яйцами, но понять же мне надо. Что делать, если я хочу в QT сделать свою функцию? Мне новый фал создавать, дописывать в main.cpp или в mainwindow.cpp?
sageАноним 17/03/15 Втр 22:32:39 #262 №451575 
>>451573
>QT
>QT
>QT
Этот? https://ru.wikipedia.org/wiki/QuickTime
Аноним 17/03/15 Втр 22:34:36 #263 №451576 
>>451575
https://ru.wikipedia.org/wiki/Qt
sageАноним 17/03/15 Втр 22:35:24 #264 №451577 
tfw no qt 3.14 gf
Аноним 17/03/15 Втр 22:40:19 #265 №451579 
Ребят, херня с tcc, написал dll на фасме скомпилил, линкую с кодом на С - не линкуется. Херня думаю, мож я не долбоёб, компилирую пример "tcc.exe tcc\examples\dll.c -shared", всё пучком, кладу dll в папку с клиентом, компилирую пример клиента "tcc.exe tcc\examples\hello_dll.c -Ldll.dll" и внезапно получаю хуём по губе от тцц, мол символ 'HelloWord' не найден, я охуел когда не нашёл в гугле и на оф.сайте просветления, пробовал след. варианты:
"tcc.exe tcc\examples\hello_dll.c -LC:\tcc\examples -ldll.dll"
"tcc.exe tcc\examples\hello_dll.c -L'C:\tcc\examples' -ldll.dll"
"tcc.exe tcc\examples\hello_dll.c -LC:\tcc\examples -ldll"
"tcc.exe tcc\examples\hello_dll.c -Ldll"
И получаю одно и то же - либо -ldll не найден либо символ 'HelloWorld'.

Как правильно сделать ЭТО?
Аноним 17/03/15 Втр 22:54:48 #266 №451587 
>>451579
> dll на фасме
Натрави на нее tiny_impdef или сам напиши .def-файл. А .def-файл можно либо напрямую линковать (tcc whatever dll.def), либо уже -ldll, если оно в libpath. Алсо, про mangling не забывай.
Аноним 17/03/15 Втр 22:56:55 #267 №451590 
>>451573
Где хочешь. Лучше всего в том файле где используешь, или отдельном.
Аноним 17/03/15 Втр 22:59:15 #268 №451593 
>>451590
Я правильно понял, что main.cpp занимается только созданием окошек и прочее, а свою функцию надо в mainwindow.cpp писать, предварительно продекларировав ее в заголовке?
Аноним 17/03/15 Втр 23:09:14 #269 №451601 
Легковесный, кроссплатформенный надо Windows/Linux, на OS X пока похуй и невырвиглазный гуй существует в природе? Нужен минимум - окошки, модальные диалоги, кнопочки, поля ввода. Алсо, если придется зашквариться Qt, на нем возможно полноценно писать без Qt Creator?
Аноним 17/03/15 Втр 23:18:25 #270 №451612 
>>451601
А чем тебе Кьют не Кьют? Собирай статически, особо много лишнего тащить нужно не будет.

И да, на нем можно спокойно писать откуда угодно, Криэйтор это ж IDE. Но из-под него дико удобно, потому что мэйкфайлы сам делает, дизайнер в комплекте, справка в комплекте (а она у Кьюта шикарная), и вся хурма.
Аноним 17/03/15 Втр 23:26:22 #271 №451618 
>>451587
Что то не похоже на правильное решение проблемы, а я бы сказал выглядит как костыль.
Аноним 18/03/15 Срд 00:06:50 #272 №451637 
>>451618
Почему костыль? Создавать таблицу импорта для PE можно разными способами: "большие" компиляторы (студия, гцц) при сборке DLL генерируют .lib-файлы, содержащие готовые куски таблицы импортов. Эти .lib-файлы ты указывешь при линковке своей программы, а линкер с помощью особой линкерной магии объединяет куски таблиц импортов из .lib-файлов в нужном порядке в одну секцию (импорты в PE под это и затачивались, кстати). Выглядит, как костыль, правда? Алсо, tcc, возможно, поддерживает такие файлы (их обработка ничем не отличается от обработки обычных статических либ, кроме, разве что, прописывания RVA и размера секции импорта в data directory).
Но если не нужны всякие advanced-фичи, можно генерировать таблицу импортов при линковке. Так делают тот же фасм и tcc. Для этого нужен только список функций (символов) и имя DLL. Все это есть в .def файлах. tcc при сборке DLL генерирует, собственно, .dll и соответствующий .def. Для случаев, если .def нет по каким-то причинам (например, .dll собрана не в GCC, как у тебя), в поставку входит tiny_impdef, который перечисляет экспорты указанной .dll и создает .def.
Алсо, я не совсем понимаю, что ты и где гуглил, если пример сборки использования .dll в tcc есть прямо в tcc-win32.txt в дистрибутиве.
Алсо, если тебя что-то не устраивает, можешь просто не использовать встроенный линкер tcc и взять ld, MS link или еще что-нибудь.
Аноним 18/03/15 Срд 19:19:53 #273 №451965 
14266955937070.png
Есть ли картинка/пдфка с временной сложностью операций контейнеров STL? %Собранное в одном месте%
Аноним 18/03/15 Срд 19:41:41 #274 №451977 
14266969015800.png
>>451965
Аноним 18/03/15 Срд 21:19:37 #275 №452012 
>>451977
Благодарю.
Аноним 18/03/15 Срд 21:21:06 #276 №452013 
>>451637
К сожалению ты много магии описал. Есть нечто более конкретное? Например "иди нахуй" или "напиши в консоли то-то и то-то получиш результат".
Аноним 18/03/15 Срд 23:12:36 #277 №452067 
>>452013
> более конкретное
tiny_impdef твоядлл.dll -o твойдлл.def
tcc исходник.c твоядлл.def или tcc исходник.c -Lпутькдеф -lтвоядлл
Аноним 19/03/15 Чтв 00:18:19 #278 №452105 
Я в печали, братаны.
У меня нет работы...
Аноним 19/03/15 Чтв 00:37:40 #279 №452114 
>>451593
>Я правильно понял, что main.cpp занимается только созданием окошек и прочее
нет, неправильно. во-первых это обычно плюсы (пусть с moc-костылями, но всё же), во-вторых Qt абсолютно не навязывает. если ты новичек в плюсах, то стартовать с кути не стоит, серьезно. продрочи консольку основательно
>а свою функцию надо в mainwindow.cpp писать, предварительно продекларировав ее в заголовке?
короче говоря, если у тебя функция относится к классу, то ее нужно объявлять в классе

>>451601
>писать без Qt Creator
можно писать хоть в виме, это же библиотека
Аноним 19/03/15 Чтв 01:47:42 #280 №452135 
Скажи, плюсач. Вот есть такая вот конструкция:

std::unique_ptr< QApplication > utv_app{ new QApplication{ argument_count, arguments } };

Можно ли ее как-нибудь упростить, убрав new? Насколько я помню, списки инициализации как раз ради это отчасти делались.
Аноним 19/03/15 Чтв 02:20:52 #281 №452152 
>>452135
Нужно добавить в unique_ptr конструктор принимающий список инициализации.
Аноним 19/03/15 Чтв 08:07:18 #282 №452209 
14267416383690.jpg
>>452067
О великий! Благодарю.
Аноним 19/03/15 Чтв 09:22:58 #283 №452222 
>>452135
Ну, можно наверное сделать аналог make_shared только для unique_ptr.
мимо с дивана
Аноним 19/03/15 Чтв 09:32:41 #284 №452225 
>>452222
http://en.cppreference.com/w/cpp/memory/unique_ptr/make_unique
оказывается оно уже есть, епту

auto utv_app = make_unique<QApplication>( argument_count, arguments );
sageАноним 19/03/15 Чтв 12:44:42 #285 №452281 
Qt-тред скорее мертв, чем жив, спрошу тут.
Че с этим обоссанным ычаном не так? Хули он не вайпается. http://pastebin.com/mDWKJy5u
Wireshark'ом посниффил, все хедеры заданы, все куски формы тоже. Файл прикреплен, капча решена (спасибо анону, который распознавалку на жабе запилил). Хули они, блять.
sageАноним 19/03/15 Чтв 13:39:05 #286 №452305 
>>452281
Какой же я даун, обосрался вот тут, коммент забыл убрать. QHttpMultiPart *mp = new QHttpMultiPart;//(QHttpMultiPart::FormDataType);
Кидайте свои ссаные тряпки мне в рожу.
Аноним 19/03/15 Чтв 16:33:17 #287 №452392 
>>452305
Кинул ссаной тряпкой в шизика
для профилактики
Аноним 19/03/15 Чтв 22:37:06 #288 №452599 
Господа, нид хелп. Где найти норм туторы по с++&&OpenGL&&linux?
sageАноним 19/03/15 Чтв 22:39:33 #289 №452601 
>>452599
https://www.google.ru/
Аноним 19/03/15 Чтв 22:40:11 #290 №452602 
>>452599
Есть такой сайт, гуглом называеться.
Аноним 19/03/15 Чтв 22:46:58 #291 №452606 
>>452599

https://open.gl/
Аноним 19/03/15 Чтв 22:48:33 #292 №452608 
>>452606
Спасибо большое.Спокойной ночи
Аноним 19/03/15 Чтв 22:50:10 #293 №452610 
>>452599
https://ru.wikibooks.org/wiki/%D0%A1%D0%B8%2B%2B
Аноним 19/03/15 Чтв 22:51:02 #294 №452612 
>>452599
http://linuxgid.ru/
Аноним 20/03/15 Птн 04:09:02 #295 №452679 
Добрый день. Как можно реализовать побитовую запись в файл? Задача по переводу UTF-8 в код Фибоначчи и обратно, не знаю, как Фибоначчи писать. Думаю в массиве байт биты хранить и потом в конечный массив используя побитовые сдвиги записывать, но выходит оче запутанно и непонятно, как между фрагментами связь поддерживать записал я 19 бит, массив под биты кончился, остались 3, не внесенные в массив для записи, что с ними делать?. Спасибо.
Аноним 20/03/15 Птн 07:15:34 #296 №452693 
Как в if в оператор записать несколько условий?
Грубо говоря, if (r4 = 11..19). Т.е. если r4 принимает значения в промежутке от 11 до 19. Как записать этот промежуток синтаксически правильно?
Аноним 20/03/15 Птн 08:09:02 #297 №452700 
>>452679
Записывай биты в байт любым удобным способом, затем записывай полученный байт в файл и в самом конце одним байтом запиши количество лишних бит в последнем записанном байте для корректного чтения бит. Возможно проще реализовать битовыми полями, но я их ниразу не юзал.
Аноним 20/03/15 Птн 08:12:46 #298 №452701 
>>452693
if((r4 < 19) ? ((r4 > 11) ? TRUE : FALSE):FALSE)
Аноним 20/03/15 Птн 09:08:11 #299 №452712 
>>452701
Проиграл.
Аноним 20/03/15 Птн 09:10:42 #300 №452713 
>>443920
>(num >= 0) && (fractional == 0.0))
>сравнивать число с плавающей точкой прямым сравнением
Поссал на дебила.
sageАноним 20/03/15 Птн 09:48:52 #301 №452718 
>>452693
Тот петросян выше почи прав.
if (r4 >= 11 && r4 <= 19) ;
Аноним 20/03/15 Птн 13:46:08 #302 №452771 
>>452713
Аргументы будут или ты просто повыебываться решил?
sageАноним 20/03/15 Птн 14:31:06 #303 №452778 
>>452771
Я не он, но тоже ссу тебе в рот.
http://floating-point-gui.de/errors/comparison/
http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm
Аноним 20/03/15 Птн 15:29:07 #304 №452798 
>>452778
Обоссал дебила с шаблонным мышлением. Флоаты, установленные присваиванием, вполне можно сравнивать.
Если, например if ( a > 1.0f ) a = 1.0f, то потом можно if ( a == 1.0f ).
sageАноним 20/03/15 Птн 15:36:32 #305 №452800 
>>452798
Только вот в том примере такого нет, поэтому ты идешь на хуй.
Аноним 20/03/15 Птн 15:37:12 #306 №452801 
>>452800
Ты совсем дебил чтоле?
sageАноним 20/03/15 Птн 16:05:37 #307 №452810 
>>452801
Нет, это ты дебил. У него num - аргумент функции, а не константа. Неизвестно, чему эта переменная равна и как было получено ее значение. И из этой переменной num мы получаем дробную часть, которая, таким образом, тоже неизвестно чему будет равна.
Аноним 20/03/15 Птн 16:09:57 #308 №452815 
>>452800
Ты ведь не про пример это запостил. У тебя просто сработало утиное "низя!" на сравнение флоатов. Если бы goto в коде увидел, вообще взорвался бы.
sageАноним 20/03/15 Птн 16:25:51 #309 №452836 
>>452815
Анон (>>452713) правильно указал на ошибку. Петух закукарекал об аргументах. Я это увидел и запостил ссылку на аргументы. Еще вопросы будут?
Аноним 20/03/15 Птн 19:02:09 #310 №452925 
Анончики, помогите.
http://pastebin.com/kGcVFZ6p
Почему после ввода длины строки программа не дает мне вводить саму строку?
Если ставить фиксированную длину строки, то такой проблемы нет.
Аноним 20/03/15 Птн 19:22:19 #311 №452930 
>>452925
У тебя в входном буфере остается '\n' от предыдущего ввода, getline его читает и останавливается. Перед cin.getline(s, N); добавь cin.get();
Аноним 20/03/15 Птн 20:03:00 #312 №452949 
>>452930
Спасибо, анон.
Аноним 20/03/15 Птн 20:25:42 #313 №452964 
>>452836
Если бы ты вдался в контекст, в котором это сравнение используется, то понял бы что ты мудила тот еще. Числа вводятся с клавиатуры и нужно было проверить целое число введено или дробное. Но нет, надо сразу обоссать и выебываться как петух перед курицами. Нахуй послан, мамка обоссана.
Аноним 20/03/15 Птн 20:34:55 #314 №452969 
>>452925
Еще один вопрос появился, как сравнивать кириллицу?
Нужно узнать сколько слов содержит букву, с латиницей все работает, а кириллицу не воспринимает.
sageАноним 20/03/15 Птн 20:41:01 #315 №452970 
>>452964
>Числа вводятся с клавиатуры
Чет не нашел этого в коде. сдается мне, ты собственную мамашу обоссал.
Аноним 20/03/15 Птн 20:53:53 #316 №452976 
>>452970
А даже если не с клавиатуры. то что? Если сравнивать с дельтой, они от этого целыми станут? Да нихуя подобного. Дробное значит дробное, целое — значить дробная часть РАВНА нулю.
И да, когда я писал ему этот код, то думал про дельту, так что можешь со своими советами пиздовать нахуй.
Аноним 20/03/15 Птн 21:23:19 #317 №452992 
>>452976
>И да, когда я писал ему этот код, то думал про дельту, так что можешь со своими советами пиздовать нахуй.
Спасибо за функцию кстати. Хотя я её так и не использовал но на пару мыслей меня она наталкивала.

Обоссыте мою функцию для корректного ввода нужного значения.
http://ideone.com/adk7RK
sageАноним 20/03/15 Птн 21:23:29 #318 №452993 
>>452976
Блять, хули ты такой тупой. У тебя при операциях с этими ебучими числами может получиться не ноль, хотя в реальном мире там был бы при таких же операциях ноль. Так происходит из-за ограничений точности. Поэтому сравнивать бессмысленно.
Аноним 20/03/15 Птн 21:33:29 #319 №452995 
>>452993
Блять, да нет там никаких операций. Уймись уже.
sageАноним 20/03/15 Птн 21:37:49 #320 №452999 
>>452995
Раз нет, то ты заранее знаешь значение. Нахуй тогда вообще сравнивать?
Аноним 20/03/15 Птн 21:44:34 #321 №453002 
>>452999
Инпут там есть, ты инпут предсказывать умеешь что-ли?
sageАноним 20/03/15 Птн 21:48:34 #322 №453004 
>>453002
:---DDDD
->https://vk.cоm/im?peers=конфочка_срачками_одноклассниками
sageАноним 20/03/15 Птн 22:01:57 #323 №453010 
>>453002
Ну тогда может быть. А вообще с инпутом проще сразу введенную строку проверить, чем полагаться на еблю с плавающей точкой. Бывают поехавшие компиляторы, которые весьма своеобразно float оптимизируют, вплоть до того что 0.0 у тебя может внезапно стать не 0.
Аноним 20/03/15 Птн 22:31:55 #324 №453024 
Аноны, как сравнивать char переменные, в которых кириллица?
Аноним 20/03/15 Птн 22:40:40 #325 №453030 
>>453024
С помощью операций сравнения.
Аноним 20/03/15 Птн 22:41:10 #326 №453031 
Есть ли где-то какие-то открытые проекты, где я мог бы править баги и мутить новый функционал со временем, чтобы и скиллы свои импрув, и с пользой?
sageАноним 20/03/15 Птн 22:44:14 #327 №453032 
>>453031
Есть.
Аноним 20/03/15 Птн 22:44:35 #328 №453033 
>>453030
Гениально. Но я ведь не сразу сюда написал...
Латиницу нормально сравнивает, а кириллицу не хочет.
Аноним 20/03/15 Птн 22:47:08 #329 №453037 
>>453033
Беда
Аноним 20/03/15 Птн 22:48:10 #330 №453039 
>>453031
Dota 2
sageАноним 20/03/15 Птн 22:48:43 #331 №453040 
>>453033
Попробуй переустановить драйвера на видеокарту.
sageАноним 20/03/15 Птн 23:17:36 #332 №453060 
>>453040
Какие блять драйвера видеокарты, ты ебанутый? Сразу ведь понятно, что процессор пылью засорился.
Аноним 20/03/15 Птн 23:31:51 #333 №453063 
>>453040
>>453060
Спасибо! Оказалось в розетку забыл вставить провод.
[huesos] Аноним 20/03/15 Птн 23:44:09 #334 №453074 
>>453033
char a = 'h'
int d = a

ti = dolboeb
Аноним 21/03/15 Суб 01:11:26 #335 №453101 
>>453033
#import <Foundation/Foundation.h>

…..

NSString string1 = @"Оп - хуй";
NSString
string2 = @"Ты - хуй";

if ([string1 isEqualToString:string2] == YES)
         NSLog(@"%@",string2);
else
         NSLog(@"%@",string1);
Аноним 21/03/15 Суб 01:42:33 #336 №453113 
>>453033
#include <cwchar>
wchar_t c = L'ф';
bool ok = c == L'щ';
Аноним 21/03/15 Суб 02:46:41 #337 №453136 
Анон, помоги зелёному, почему последний массив (который состоит из элементов между макс. и мин. элементами предыдущего) не всегда выводится? Раз на пять компиляций он просто пустой. http://pastebin.com/XyDrcxn8
Аноним 21/03/15 Суб 09:22:12 #338 №453160 
>>453136
Значит он пустой. Макс и мин элементы не входят в твой массив, и если они находятся рядом друг с другом то массив получается пустой, вероятность этого 18/90. Алсо у тебя там в цикле копирования массива неправильное количество итераций из-за чего последний елемент не копируется, должно быть i<finish
Аноним 21/03/15 Суб 09:54:07 #339 №453163 
>>452701
Алло, это конкурс юмористов?

switch (r4)
{
case 11: case 12: case 13: case 14: case 15: case 16: case 17: case 18: case 19:
return true;
default:
return false;
}
Аноним 21/03/15 Суб 13:01:27 #340 №453243 
>>453160
Надо же, на такой очевидной вещи проебал все полимеры. Спасибо тебе, добрый анон.
Аноним 21/03/15 Суб 13:59:49 #341 №453255 
День добрый, антуаны.
Подскажите, пожалуйста, имеет ли смысл вообще юзать бесконечные аргументы?
Например мне нужно задавать СТРОКОВЫЕ параметры.
По одному не шибко удобно.
Соответственно удобно было бы использовать что-то похожее на:
void add_param(const string &param1, ...);
Ну и юзать уже подобным образом:
add_param("p1", "p2", "p3", nullptr);
nullptr будет обозначать конец листа параметров.

С одной стороны это удобно для добавления. С другой стороны, сколько аргументов без доп. параметра не узнать. Т.е. va_list не даёт размерности. Если используется для хранения параметров тот же вектор, то перевыделения памяти не избежать, без повторного цикла, чтобы отрезёрвить место. А если просить ссылку на вектор с параметрами, то тогда изи, но не очень удобно использовать.
vector<string> vec = {"p1", "p2", "p3"};
add_param(vec);

Какой вариант предпочтительней? И вообще, в каких случаях бесконечные параметры актуальны? Если говорить о плюсах.
Аноним 21/03/15 Суб 14:55:28 #342 №453271 
>>453255
Linked list
Аноним 21/03/15 Суб 16:32:40 #343 №453293 
>>453255
Если параметры одного типа, то используй std::initializer_list, а если разных, то пиши рекурсивную шаблонную функцию.
Аноним 21/03/15 Суб 19:39:27 #344 №453387 
Сап, помогите зеленому.
http://pastebin.com/EE10XMGu
22-23 строка
Как сделать сравнение с ебаной кириллицей?
Аноним 21/03/15 Суб 19:48:57 #345 №453395 
>>453387
https://ideone.com/iKCQjj
Запускаешь в своей системе, смотришь каким кодам соответсвуют нужные буквы, сравниваешь с ними.
Аноним 21/03/15 Суб 20:03:54 #346 №453399 
>>453395
Уже пытался
Все равно не работает.
http://pastebin.com/VZfVbkz9
С английскими буквами и символами все нормально.
Аноним 21/03/15 Суб 20:15:22 #347 №453403 
>>453399
> char w = 'б';
> char W = 'Б';
Что это за хуйня? Тебе их нужно с клавиатуры ввести. В консольку, или куда ты там пердолишся. У тебя отличаются коды букв в твоем редакторе и в консольном шрифте.
Аноним 21/03/15 Суб 20:24:10 #348 №453412 
>>453403
-63 и -31 у них коды.
http://pastebin.com/gNyCEkfS
Ничего не изменилось
Аноним 21/03/15 Суб 20:54:34 #349 №453425 
Скиньте плотную статью, где жестоко пояснили бы за perfrect forwarding.
Аноним 21/03/15 Суб 20:57:44 #350 №453428 
>>453412
>-63 и -31 у них коды
Объяви их unsigned char
Аноним 21/03/15 Суб 21:10:50 #351 №453438 
>>453428
Объявлял, толку нет.
Аноним 21/03/15 Суб 21:14:44 #352 №453440 
>>453428
В самой строке косяки с кириллицей. Сделал вывод и вместо русских букв выводятся каракули.
Аноним 21/03/15 Суб 21:16:50 #353 №453442 
>>453440
Вот про это я и говорю. Тебе нужно определить какому каракулю соответствует буква 'б' и сравнивать с ним.
Аноним 21/03/15 Суб 21:19:04 #354 №453443 
>>453163
>>452712
Я даже не наделся что меня поймут (:
Аноним 21/03/15 Суб 21:25:25 #355 №453445 
>>453442
Спасибо тебе!
Аноним 21/03/15 Суб 21:44:37 #356 №453453 
>>453293
>std::initializer_list
Понял. Нихуя сложного, примерно так и делал обычно.
Т.е. хорошего применения БЕСКОНЕЧНЫМ параметрам не найти?

Ещё есть один вопрос. Связан с шаблонами и коллбэками.
Очень нравится конструктор std::thread, делаю по его примеру.
Как можно не поганить объявление класса подобной хуйнёй:
template<typename Class>
void add_callback(Class _class, void(Class::meth)())
{
callback = std::bind(meth, _class);
}


Можно, конечно, сразу принимать std::function, но выглядит ущербно подобный код. Особенно, если параметром больше, чем 1.

add_callback(std::bind(&MyClass::my_meth, &MyClass, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3));
Аноним 21/03/15 Суб 23:31:37 #357 №453495 
>>453453
А если через variadic templates и forward?
Аноним 21/03/15 Суб 23:46:09 #358 №453505 
>>453495
Поясни? Хотелось бы на ideone, например.
Аноним 22/03/15 Вск 01:20:18 #359 №453548 
Есть некий файл с текстом, где все слова разделены пробелами. Как я могу обратиться к случайному слову (читай: к символу после пробела)?
sageАноним 22/03/15 Вск 01:21:26 #360 №453549 
>>453548
(!!) . words
Аноним 22/03/15 Вск 01:27:55 #361 №453552 
>>453548
Спасибо, сам придумал.
Аноним 22/03/15 Вск 02:22:22 #362 №453563 
>>452700
>Записывай биты в байт любым удобным способом
Так вот как? Там же последовательности разной длины. Лишние биты в конце не проблема, нулями заполню.
Аноним 22/03/15 Вск 02:42:31 #363 №453569 
Есть способ передать в функцию переменное число аргументов конкретного типа без танцев с va_args и initializer_list?
Аноним 22/03/15 Вск 02:46:02 #364 №453570 
>>453569
Контейнер
Аноним 22/03/15 Вск 02:46:17 #365 №453572 
>>453569
Упакуй в вектор/лист/твою_мамку
Аноним 22/03/15 Вск 02:46:43 #366 №453573 
>>453572
Ещё тупл, если разные типы
Аноним 22/03/15 Вск 02:58:17 #367 №453580 
>>453570
>>453572
>>453573
ну вы серьезно блять?
Аноним 22/03/15 Вск 03:00:50 #368 №453583 
>>453580
Да. Все возможные варианты уже перечислены.
Аноним 22/03/15 Вск 03:02:30 #369 №453586 
>>453583
Я передаю константы, разные по ситуации. Ну и что мне теперь, константы оборачивать в вектор? variadic templates юзать хочу в последний момент
Аноним 22/03/15 Вск 03:20:59 #370 №453591 
>>453586
Опиши подробнее что у тебя там происходит. Скорее всего можно как-то переделать архитектуру и избавиться от этой проблемы вообще.
Аноним 22/03/15 Вск 03:33:38 #371 №453596 
>>453591
Ну, вообще, да. Все можно переделать лучше. Бывает у меня такое - ебанутые дизайны и всякая хуйня.
Пердолюсь с глобальными ивентами в qt под винду, передаю модиферы MOD_*. Это все можно организовать обычным логическим или
Аноним 22/03/15 Вск 13:33:43 #372 №453659 
>template<typename T> void foo(T&&);
>When foo is called on an lvalue of type A, then T resolves to A& and hence, by the reference collapsing rules above, the argument type effectively becomes A&.
Правильно ли я понял, что если я пишу такой код
int i = 0;
int &j = i;
foo (i); foo (j); foo (2); Типы будут соответственно int &, int &, int &&? А что если у меня объявлен параметр как const T &&?
Аноним 22/03/15 Вск 17:35:34 #373 №453710 
>>453659
> Типы будут соответственно int &, int &, int &&?
Да.
> А что если у меня объявлен параметр как const T &&?
Меня компилятор нах послал с попыткой вызвать эту функцию указанными способами.

http://www.codesynthesis.com/~boris/blog/2012/07/24/const-rvalue-references/
sageАноним 22/03/15 Вск 18:05:20 #374 №453716 
14270367203110.png
14270367203171.png
14270367203322.png
Пришло время вбросить свой высер еще раз.
Итак, говноборда.
https://ololoepepe.me/board/b
https://github.com/ololoepepe/ololord
Че изменилось:
Поддержка bbcode: b, i, s, u, spoiler, sub, sup.
Доска /echo/: при создании треда надо указать ссылку на тред с другой борды, он будет во фрейме и развертывается при наведении. Для набегов, например, или для обсуждения.
Подгрузка постов без обновления страницы, а также автообновление.
Тег code на всех досках, также допустимо, например, [c++]...[/c++] или [haskell]...[/haskell].
Удаление поста без обновления страницы.
Исправлено превью постов в хромом брошзере.
Для вемок (WebM) создаются превью.
Постинг асинхронный (через iframe). Если произошла ошибка, не надо все заново вводить.
Картинки открываются в треде как тут, с перетаскиванием и масштабированием. Вемки не двигаются (ебучий жабаскрипт, хуй знает как для вемок это сделать чтоб при этом можно было по кнопкам тыкать).
Кнопка "Пожаловаться" (с сюрпризом, естессна).
Превью загружаемых файлов.
Карта ответов.
Поиск в гугле и на iqdb по картинкам.
Мигание неактивной вкладки с новыми (автоматически подгруженными) постами.
Скачивание всех картинок из треда одним архивом.
Премодерация постов (юзером, не мочой).
Исправлена вставка ссылок на посты.
Дедупликация файлов. Если файл на сервере уже есть (проверка по хешу), он не отправляется. Добавляется, но просто трафик экономится.
* Ну и всякие неинтересные технические детали, типа возможности админу постить голый HTML.
sageАноним 22/03/15 Вск 18:06:54 #375 №453717 
14270368144860.png
>>453716
Ебаная макака, какого хуя не работает маркированный список, тварь тупорылая.
Аноним 22/03/15 Вск 18:43:28 #376 №453736 
>>453716
>пишет сайт на крестоговне
Тупая крестоблядь.

Мимо_php_господь
sageАноним 22/03/15 Вск 19:04:09 #377 №453743 
>>453736
>Мимо_php_макака
починил
Аноним 22/03/15 Вск 21:13:23 #378 №453807 
Меня ваша шапка наебала, репостну из тонущего сюда.

>>453805
Аноним 22/03/15 Вск 21:15:17 #379 №453808 
>>453807
Лафоре "ООП С++", хуле, самая простая книга для вкатывания.
Аноним 22/03/15 Вск 21:16:24 #380 №453809 
>>453808
Не люблю таки читать с монитора и прибегаю к этому в крайних случаях, но учту, спасибо.
Аноним 22/03/15 Вск 23:00:36 #381 №453864 
>>453716
Ты охуенен, конечно, но не лучше ли заставить Абу вернуть поддержку тега code?
Аноним 23/03/15 Пнд 00:43:12 #382 №453894 
>>453716
Красавелла
Если напишешь мне апп для андроида и таки перекачусь
Аноним 23/03/15 Пнд 03:32:16 #383 №453919 
Привет, программач!

У меня есть поток каких-то чисел с большим допустимым диапазоном, например, айпи. Нужно написать штуку, которая быстро бы проверяла, встречалось ли уже такое число. Ввиду огромного количества чисел сделать std::array<bool, 2^32> и смотреть по нему не удается.

Как бы это сделать по-человечески? Основная задача, если что, это поиск количества уникальных встретившихся чисел.
sageАноним 23/03/15 Пнд 03:40:47 #384 №453921 
>>453919
Set.size . Set.fromList
Аноним 23/03/15 Пнд 03:59:30 #385 №453923 
>>453921
And what?

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

Array идеальна, но ее такую большую хрен создашь.

Или ты совсем о чем-то другом?
Аноним 23/03/15 Пнд 04:42:29 #386 №453925 
>>453923
Битмап для 32 бит будет 512 метров всего. Не так уж и много. А потом биты посчитать не так уж и долго (особенно если проц умеет в какой-нибудь вариант popcnt).
Аноним 23/03/15 Пнд 05:24:00 #387 №453928 
>>453925
Хмм... Битсет такого ебического размера создаваться не хочет.
Аноним 23/03/15 Пнд 05:28:09 #388 №453929 
>>453928
> не хочет
А ты его не спрашивай - выдели сам память и пользуйся, а не еби библиотеки. Если вдруг в адресном пространстве не найдется непрерывной области такого размера, можно ведь и разбить на чанки по 64 МБ, например.
Аноним 23/03/15 Пнд 09:14:17 #389 №453951 
>>453928
А ты выдели массив uint8_t*, заполненный изначально нулями, и циклом проставляй true, если совпадает хоть с одним ранее из тех что false. Тогда количество всех фолсов это количество уникальных встретившихся чисел.

http://pastebin.com/9bCeLr2n

Кстати, сброс бита (reset bit) именно здесь тебе не нужен. Я так, до кучи его написал.
Аноним 23/03/15 Пнд 10:43:50 #390 №453977 
hd->next->next = hd;
sageАноним 23/03/15 Пнд 16:15:24 #391 №454112 
>>453864
Не вернет он. Уже сто раз говорил. Да и не в этом соль, а в том, чтоб с вебом поебстись немного.
>>453894
Уже пишу тебе личный апп, канеш. Нет, ну в самом деле, ебнулся что ли? Нахуй это надо. Я еще могу понять апп для тытрубы, он может какой-то прирост к производительности дать, но тут то нафига? Все равно все будет тупо дублироваться. Свистоперделок и так дохуя, а работает вполне быстро на лопате.
Аноним 23/03/15 Пнд 17:15:09 #392 №454128 
Двачик, есть очень простой вопрос, но нормальное решение как-то не очевидно. В общем есть строка std::wstring вида "0102030A0B0C", нужно разбить на вектор/массив строк вида {"01", "02", "03", "0A", ... }. Кроме тупого перебора циклом есть в стандартной библиотеке способы это сделать?
sageАноним 23/03/15 Пнд 18:11:42 #393 №454151 
>>454128
http://stackoverflow.com/questions/16709314/split-string-using-loop-to-specific-length-sub-units
Аноним 23/03/15 Пнд 18:40:24 #394 №454160 
>>448310
Помогите пожалуйста. Как определить, сколько слов в строке чётной длины, используя стандартные строковые функции?
Аноним 23/03/15 Пнд 19:18:37 #395 №454175 
>>454160
unsigned numberOfWords = 0;
if (str.length())
{
size_t pos = 0;
while (std::npos != (pos = str.find_first_of(" ", pos)))
{
++numberOfWords;
}
}
sageАноним 23/03/15 Пнд 19:30:33 #396 №454180 
>>454175
А запятые и точки кто обрабатывать будет?
Аноним 23/03/15 Пнд 19:33:05 #397 №454182 
>>454180
Запятые и точки никак не повлияют на количество слов в предложении.
Аноним 23/03/15 Пнд 19:36:03 #398 №454185 
>>454175
А где длина слова проверяется на чётность?
Мимо.
sageАноним 23/03/15 Пнд 19:55:03 #399 №454196 
>>454182
Ты дебил? Твой высер будет находить в качестве слов подстроки типа "тогда,". Соответственно, длина слова будет больше на 1, чем должна быть, и длина станет нечетной (или наоборот четной). Пиздец, как ты вообще его условия читал?
Аноним 23/03/15 Пнд 19:57:33 #400 №454197 
14271298536530.jpg
>>454196
Про то что нужно длину считать это я не заметил, да. Ну пусть пройдётся циклом и удалит все запятые, хули, как будто это проблема.
Аноним 23/03/15 Пнд 21:27:16 #401 №454250 
>>454160
ну няши, помогите же))
как найти количество слов чётной длины? кроме пробелов, слова могут быть отделены запятыми, двоеточиями, тире
Аноним 23/03/15 Пнд 21:32:02 #402 №454254 
str.erase(std::remove(str.begin(), str.end(), ','), str.end());
str.erase(std::remove(str.begin(), str.end(), '.'), str.end());
str.erase(std::remove(str.begin(), str.end(), ':'), str.end());
str.erase(std::remove(str.begin(), str.end(), '-'), str.end());
// ещё какие знаки убрать сам вставишь если надо

vector<string> vecWords = explode(str, ' ');
// код функции explode могу приложить отдельно

unsigned chetnih_slov_chislo = 0;

for each (string word in vecWords)
{
if( word.length() % 2 == 0)
chetnih_slov_chislo++;
}
Аноним 23/03/15 Пнд 21:46:03 #403 №454265 
>>454254
ну блин(((, я не знаю таких функций, можно как-нибудь без векторов и этих erase? мы просто в универе ещё не проходили это)) мне кажется тут нужно выделять слова с помощью strspn() и strcspn().
Аноним 23/03/15 Пнд 22:06:44 #404 №454270 
>>454265
Это всё стандартные функции c++, а эти рудименты strspn() и прочие я никогда в жизни не использовал, хз уж как там с ними делать что
Аноним 23/03/15 Пнд 22:10:28 #405 №454274 
>>454270
ну напиши тогда хотя бы без векторов пожалуйста))
Аноним 23/03/15 Пнд 22:17:18 #406 №454276 
>>454250
http://ideone.com/JF35OE
Аноним 23/03/15 Пнд 22:22:55 #407 №454280 
>>454276
static const std::set<char>::iterator _end = delimeters.end();\
for (std::string::iterator it=input.begin(); it!=input.end(); ++it)
if (delimeters.find(*it) == _end) state++;
else;
объясни пожалуйста эти строчки;
что за set, iterator?
Аноним 23/03/15 Пнд 22:32:29 #408 №454285 
>>454280
Ну вторую строку можно заменить на
for (char it=input; it!=0; ++it)
если вхожной параметр объявить как указатель на char (строка в стиле С). А сет это сет, почитай документацию, я хуй знает чем тебе помочь. Можешь свой навелосипедить, для твоей задачи достаточно просто можно хуевый на массивах сделать, так тебе ограниченый функционал нужен - только статическая инициализация и проверка наличия.
Аноним 23/03/15 Пнд 22:38:41 #409 №454289 
>>454274
Как без векторов то? На массиве чтоли?
Аноним 23/03/15 Пнд 22:49:26 #410 №454295 
>>454285
да, через символьный массив, и мне ещё нужно вставить после первого слова заданную подстроку, например ””; помоги пожалуйста)) мне завтра уже надо эту задачу сдать
sageАноним 23/03/15 Пнд 23:05:06 #411 №454304 
Долбоебы повелись на очевидную зелень, пиздец деграданты.
Аноним 23/03/15 Пнд 23:16:55 #412 №454313 
>>454304
я не зелень, просто студентота, начавшая изучать прогу только в универе
Аноним 23/03/15 Пнд 23:51:38 #413 №454327 
>>454250
http://ideone.com/uCwvqF
не благодари, братюнь
Аноним 23/03/15 Пнд 23:58:12 #414 №454334 
Посоветуйте мне книжулек по низкоуровневому программированию под линукс. Я так понимаю, ядро написано там на с.
sageАноним 24/03/15 Втр 00:14:39 #415 №454347 
>>454334
Байтоебы не нужны, иди на хуй.
Аноним 24/03/15 Втр 00:18:39 #416 №454350 
>>454327
Ну спасибо, няш :'(
Иисус 24/03/15 Втр 00:25:17 #417 №454356 
Эй бандиты .есть что-нибудь по MFC(учебник.статьи)?а то в гугле чет нехера нету
Аноним 24/03/15 Втр 00:43:36 #418 №454361 
Бля, антоши, подскажите, не могу разобраться с указателем на начало массива в С.
Например, есть

char STR[] = "asd";

в памяти он устроен как-то так -

0 | 'a'
1 | 's'
2 | 'd'
3 | '\0'

Окей, но где тогда хранится сам указатель STR?

То есть, условно говоря, если я запринчу -

printf("%p", a) // - получу 0;

Однако и

printf("%p", &a) // - Я тоже получу ноль.

Как так получается? Указатель на начало массива хранится там же, где и первый элемент? Что за борода?
Аноним 24/03/15 Втр 00:44:48 #419 №454363 
Бля, антоши, подскажите, не могу разобраться с указателем на начало массива в С.
Например, есть

char STR[] = "asd";

в памяти он устроен как-то так -

0 | 'a'
1 | 's'
2 | 'd'
3 | '\0'

Окей, но где тогда хранится сам указатель STR?

То есть, условно говоря, если я запринчу -

printf("%p", STR) // - получу 0;

Однако и

printf("%p", &STR) // - Я тоже получу ноль;

Как так получается? Указатель на начало массива хранится там же, где и первый элемент? Что за борода?
Аноним 24/03/15 Втр 00:56:49 #420 №454370 
>>454356
>MFC
>2015
Аноним 24/03/15 Втр 00:59:54 #421 №454372 
>>454363
http://eli.thegreenplace.net/2009/10/21/are-pointers-and-arrays-equivalent-in-c
Аноним 24/03/15 Втр 12:27:23 #422 №454477 
Скажи мне, двачик, почему не работает следующий код:

std::multimap< int, std::pair< int, int >@ > map; std::pair< int, int >@ pair = new std::pair< int, int >( 10, 20 );
map.insert( 10, pair );

@ = указатель
Аноним 24/03/15 Втр 12:50:19 #423 №454481 
>>454112
А я тебе говорю не удобно мля
Приложением это совсем другой уровень.
Мобильную версию хотяб надо
Аноним 24/03/15 Втр 12:51:52 #424 №454482 
>>454347
Как это нинужны?
Ты там ахуел чтоле?
Пояснить за базар в состоянии?
Аноним 24/03/15 Втр 12:56:24 #425 №454487 
Скажи, анон, если нужно реализовать таблицу из двух параметров, причем по одному нужна сортировка, а по второму -- быстрый поиск, то как это лучше всего сделать?
Аноним 24/03/15 Втр 13:55:15 #426 №454499 
Сап зк.

Хочу сделать хэшмап, у которого Key - тип, а Value как обычно.
Сейчас есть что-то типа
mymap[std::type_index(typeid(T))];

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

Хотет что-то типа такого
mymap.get<T>();

Полагаю, что нужно копать в сторону template и constexpr (которого в 2013 студии нет блджад).
Что можете посоветовать?
Аноним 24/03/15 Втр 14:14:26 #427 №454505 
>>454185
А хули он условия так говенно пишет?
>сколько слов в строке чётной длины
>в строке чётной длины
Строка четной длины, блять. Нехуй через жопу писать, будет и нормальный ответ.
Аноним 24/03/15 Втр 14:19:39 #428 №454508 
>>454477
>Хранить указатели в контейнере
Хоссал на говноеда.
sageАноним 24/03/15 Втр 14:37:18 #429 №454513 
>>454481
Ну хуй знает. Мне все норм. Что конкретно тебе неудобно? Может это все исправляется легко.
>>454482
Пссссс. Пояснил прямо в ротешник.
>>454487
Два словаря, например. Возможно, один или оба на основе хеша.
>>454499
>std::type_index(typeid(T))
std::type_index t<T>() { return std::type_index(typeid(T)); }
mymap[t<T>()];
>>454505
Это ты читаешь жопой просто. Хз как можно было именно так понять.
>>454477
>не работает
В розетку воткнул? Процессор прочистил?
Аноним 24/03/15 Втр 14:59:10 #430 №454517 
>>454513
А можно ли как-то в случае std::map быстро найти id (то есть, номер элемента с начала карты), имея в руках его ключ?
Аноним 24/03/15 Втр 15:32:57 #431 №454532 
>>454513
>std::type_index t<T>() { return std::type_index(typeid(T)); }
mymap[t<T>()];
Жопочтец, мне нужен compile-time хэшмап, а не это говно.
Аноним 24/03/15 Втр 17:22:08 #432 №454565 
Зачем нужны ссылки, когда есть указатели? Почему Кармак в своём idTech 4 использует только указатели, а на ссылки забивает хуй?
sageАноним 24/03/15 Втр 17:32:06 #433 №454568 
>>454517
Без понятия, STL не пользуюсь, вед есть Qt.
>>454532
Объясни нормально, что ты хочешь сделать. Пример кода. Нихуя не понятно. Compile-time только constexpr и шаблоны, да.
Аноним 24/03/15 Втр 17:32:44 #434 №454569 
>>454565
Иногда указатели нужно передавать по ссылке.
Потому-что привык к Си
Аноним 24/03/15 Втр 17:34:12 #435 №454573 
>>454569
Что? В каком случае это может пригодиться?
Аноним 24/03/15 Втр 17:36:08 #436 №454575 
>>454573
Когда тебе нужно модифицировать указатель.
Аноним 24/03/15 Втр 17:43:47 #437 №454577 
>>454565
Работа с указателями не гарантирует платформонезависимости и переносимости.
Аноним 24/03/15 Втр 17:44:58 #438 №454579 
>>454565
Ссылки нинужны. Просто они безопасней.
Аноним 24/03/15 Втр 17:45:59 #439 №454580 
>>454565
Ссылки не нужно проверять на NULL.
Аноним 24/03/15 Втр 17:57:37 #440 №454589 
>>454577
Почему не гарантирует? А ссылки гарантируют?
sageАноним 24/03/15 Втр 18:20:09 #441 №454598 
>>454589
Да это для долбоебов все. Которые высирают вот такое говно: http://pastebin.com/kBD8Ct4d
Если дрочить вприсядку и сосать собственный хуй, то действительно можно напороться на проблемы переносимости.
Аноним 24/03/15 Втр 18:24:27 #442 №454601 
>>454598
В pInt записывается адрес переменной pC, потом к нему прибавляется 1 и pChar получает строку по новому адресу? Там будет смещение на 1 символ? Что за хуйня?
Аноним 24/03/15 Втр 18:30:10 #443 №454602 
14272110109670.jpg
Блядь, да что за хуйня!
Ну почему компилятор пишет, что array - это char и выкидывает исключение?
Если я правильно понял, это происходит из-за того, что я сравниваю символ с разыменованным указателемa ==
(array+i) - можно так записать на элемент символьного массива. А как тут этого избежать-то? Как жить, что делать?
Аноним 24/03/15 Втр 18:33:25 #444 №454605 
14272112054370.jpg
>>454602
Аноним 24/03/15 Втр 18:46:08 #445 №454606 
>>454602
> break
> flag = true
Проиграл. Какое исключение? Прочитай какое оно, вот возми и прочитай. Возможно у тебя сегфолт из-за того что ты вылез за буфер.
Аноним 24/03/15 Втр 18:47:19 #446 №454607 
>>454602
Не /0, а \0
sageАноним 24/03/15 Втр 18:48:31 #447 №454608 
>>454601
Размер int в общем случае не равен размеру char. Как правило (на 32-битных системах) это 4 и 1 байт, соответственно. Дальше сам сообразишь, что произойдет.
sageАноним 24/03/15 Втр 18:57:00 #448 №454611 
>>454602
>>454605
http://pastebin.com/8dk6hczp
Аноним 24/03/15 Втр 19:02:53 #449 №454613 
Когда объект передается функции в качестве аргумента, создается копия этого объекта вызывается ли конструктор копии?
Аноним 24/03/15 Втр 19:04:03 #450 №454614 
>>448310
посоны, подскажите примерный алгоритм, как в символьном массиве выделить слова и узнать их чётность? как посчитать сколько слов чётной длины, а сколько нечётной?
sageАноним 24/03/15 Втр 19:04:23 #451 №454615 
>>454613
Давай рассуждать логически. Если создается копия, то создается новый объект. Что происходит (или что вызывается) при создании объекта? Вот и ответ.
sageАноним 24/03/15 Втр 19:08:38 #452 №454617 
>>454614
QString s = "мамку твою в жопу ебал, пидор";
QStringList words = s.split(QRegExp("\\W+"), QString::SkipEmptyParts);
int even = 0;
int odd = 0;
foreach (const QString &w, words) {
if (w.length() % 2)
++odd;
else
++even;
}
qDebug() << "четных:" << even;
qDebug() << "нечетных:" << odd;
Аноним 24/03/15 Втр 19:28:54 #453 №454618 
>>454617
QString s это структура? s.split это что?
А можно как-нибудь в символьном массиве всё это сделать? ну то есть дан char array[], и в нём есть слова и знаки препинания. Подскажи хотя бы примерный алгоритм))

sageАноним 24/03/15 Втр 19:41:21 #454 №454621 
>>454618
Алгоритм я тебе и так показал. Лучше отсоси преподу, или пиздуй в армию.
Аноним 24/03/15 Втр 20:00:50 #455 №454624 
>>454621
я девушка, и препод тоже женщина((
Аноним 24/03/15 Втр 20:00:54 #456 №454625 
>>454606
Не нашёл названия исключения, была ошибка чтения памяти - наверное, где-то с памятью и объебался. Гугол не подсказал ничего.
>>454611
Вставил эту функцию и весь модуль заработал - почти оргазм. Спасибо!
sageАноним 24/03/15 Втр 20:03:06 #457 №454626 
>>454624
Ну отлижи ей, прояви хоть немного фантазии, шлюха ты тупая. Зелень, съеби.
Аноним 24/03/15 Втр 21:15:02 #458 №454661 
>>454624
Сиськи давай
Аноним 24/03/15 Втр 22:58:42 #459 №454710 
>>454613
Если объект является rvalue и, как аргумент, имеет модификатор const, то может и не создаваться и н вызываться.
sageАноним 24/03/15 Втр 23:20:45 #460 №454718 
>>454710
Он же написал что создается, вопрос был про вызов конструктора.
Аноним 24/03/15 Втр 23:37:46 #461 №454725 
>>454361
A в твоём случае и есть указатель на первый элемент.
Аноним 25/03/15 Срд 13:26:12 #462 №454871 
Посоны, есть важный вопрос.

Волею судеб надо разобратьсь с куском говна на крестах, запись в файл, конкретно.
В куске кода отвечающего за запись документа в файл, вызывается [int _write] функция из файла write.c 10й вижлы.
Пробежался по ней дебагом, она доходит до винапишной функции

BOOL WINAPI WriteFile(
_In_ HANDLE hFile,
_In_ LPCVOID lpBuffer,
_In_ DWORD nNumberOfBytesToWrite,
_Out_opt_ LPDWORD lpNumberOfBytesWritten,
_Inout_opt_ LPOVERLAPPED lpOverlapped
);

Дальше, видимо, эта функция кидает error. Где мне глянуть код ошибки?
Аноним 25/03/15 Срд 13:55:29 #463 №454878 
14272809291620.png
Антуаны, как пользовательскую функцию F написать?

зелень в этом тхреаде(ITT)
Аноним 25/03/15 Срд 14:06:50 #464 №454881 
>>454878
Держи, няш.
http://ideone.com/0JHj4E
Аноним 25/03/15 Срд 14:21:52 #465 №454896 
>>454881
Спасибо тебе, очень выручил! Счастьяздоровья, невесту с приданым и коней златозубых в табор!
Аноним 25/03/15 Срд 14:39:18 #466 №454910 
Посоны а это правда что в 15 студии можно будет писать сразу под три оси? Это как вообще?
Аноним 25/03/15 Срд 14:43:27 #467 №454914 
>>454910

использование АПИ будет полиморфным.
Аноним 25/03/15 Срд 15:20:02 #468 №454934 
>>454871
GetLastError()
Аноним 25/03/15 Срд 22:37:03 #469 №455162 
>>454910
(в порядке бампа) Не понял вопрос. Компилять под три оси или что?
sageАноним 25/03/15 Срд 22:50:41 #470 №455170 
>>455162
ПИСАТЬ, мудило. Один код под все три оси.
Аноним 26/03/15 Чтв 08:38:02 #471 №455257 
>>455170
В чём блядь проблема? У тебя <iostream> виндовый, что ли?
Аноним 26/03/15 Чтв 10:35:58 #472 №455279 
14273553581340.png
Какого хера, блядь?

(Присваивание не перегружено на сдвиг вправо, сишный код, вставки на плюсах, компилится как плюсы)
Аноним 26/03/15 Чтв 13:21:11 #473 №455310 
>>455257
Даунина плс...
Аноним 26/03/15 Чтв 13:36:23 #474 №455311 
>>454334
http://free-electrons.com/doc/books/ldd3.pdf
sageАноним 26/03/15 Чтв 13:39:52 #475 №455314 
>>455310
обосрался
@
Даунина плс...
Аноним 26/03/15 Чтв 16:33:53 #476 №455364 
14273768337790.png
14273768337791.png
Господа, прошу объяснить синтаксис конструктора, обозначаемого на пикрелейтед.
sageАноним 26/03/15 Чтв 17:41:20 #477 №455374 
>>455314
Во-первых, то был не я. Во-вторых, ты таки даунина, потому что помимо голых крестов и голой STL (реализация которой, кстати, тоже может на разных платформах и осях отличаться) есть еще чисто системные заголовочники с чисто системными функциями, которые на одной оси есть, на другой нет. Хотя, дауненку, дальше лаба_3 не дошедшему, это невдомек.
sageАноним 26/03/15 Чтв 17:42:52 #478 №455375 
>>455364
Двоеточие ставится, чтобы драйвер оперативной памяти не вызывал замыкание в блоке питания.
Аноним 26/03/15 Чтв 18:23:54 #479 №455380 
>>455364
Говно синтаксис, что тут объяснять.
Аноним 26/03/15 Чтв 18:27:34 #480 №455382 
>>455380
>>455375
Код не мой, разобраться надо, но даже представлений никаких нет.
Аноним 26/03/15 Чтв 18:30:59 #481 №455384 
>>455382
Это значит, что x инициализруется значением a (копируется наверное) и тд.
Аноним 26/03/15 Чтв 18:33:38 #482 №455386 
14273840188670.jpg
>>455384
Ох уж как.
Аноним 26/03/15 Чтв 18:51:27 #483 №455389 
>>455386
пиздец, что за головастик с разными грудями
Аноним 26/03/15 Чтв 18:53:53 #484 №455390 
>>455374
Ты ахуел? Я даунёнак только что третью лабу сделал и это знал вот и хули ты пиздишь?
sageАноним 26/03/15 Чтв 18:55:41 #485 №455391 
>>455390
Че ебальник разинул? Пссссс. Нассал тебе туда.
Аноним 26/03/15 Чтв 19:18:31 #486 №455398 
>>455389
охуенная няшка жи
Аноним 26/03/15 Чтв 19:25:34 #487 №455402 
>>455386
Сначала показалось, что у неё на соске 2 прыща.
Аноним 26/03/15 Чтв 19:41:56 #488 №455406 
Господа. Сегодня был на собеседовании на блядского джуна за еду.
Почему-то на такое решение:
https://ideone.com/SJYAgn
Мне сказали, что хуйня какая-то. На мэйн можете даже не смотреть. Проверял работает ли.

Задача была разбить строку на подстроки по определённому символу.

Что тут не так?


Аноним 26/03/15 Чтв 19:48:16 #489 №455409 
>>455406
>Что тут не так?
Не знаю, хуйня какая-то.
Аноним 26/03/15 Чтв 19:57:22 #490 №455411 
>>455409
Ну хуй знает. Единственное, чтобы я выпилил - подсчёт количества элементов. Ибо нехуй линейно перебирать всё говно.
Нахуй не нужно, в принципе.
Даже выпилю её.
sageАноним 26/03/15 Чтв 20:17:02 #491 №455417 
>>455406
Еб твою мать, с такой формулировкой задачи все чуть ли не в три строчки делается, а ты говна нагородил. Конечно тебя обоссали. https://ideone.com/jqqeiP
Аноним 26/03/15 Чтв 20:20:18 #492 №455418 
>>455417
А на богоуровне вот так:

QString str = "твоя;мамаша;хороша;в;постели";
QStringList splitted = str.split( ";" );
sageАноним 26/03/15 Чтв 20:23:33 #493 №455419 
>>455418
Ну, я так понял, ему надо было на голых крестах, стл онли. На кьюте то да, qDebug() << QString("твоя;тоже;вполне;ниче;так").split(';');
Алсо, даже вот так можно сократить, че уж: https://ideone.com/dsqreZ
Аноним 26/03/15 Чтв 21:13:16 #494 №455435 
14273935964850.jpg
>>448310
Анон, я вот учу с++ не первый месяц и у меня скопилось несколько нубских вопросов:
1) Как защитить свою программу от взлома?
2) На чем сделать качественное и красивое GUI? Просматривал статьи по WinAPI но по сравнению с тем же C#, элементы окна выглядят довольно древними.
3) Как грамотно объединить коды двух ЯП, к примеру того же С++ и С#?
Аноним 26/03/15 Чтв 21:25:04 #495 №455445 
>>455435
1) Современные игры ломают за 3-4 дня. Так что, имхо, лучше не забивай себе голову.

2) Qt.

3) Через библиотеки, очевидно же.
Аноним 26/03/15 Чтв 22:25:28 #496 №455471 
>>455435
1) Всё равно взломают. Хотя тебе, думаю, подойдёт метод Неуловимого Джо.
2) Не смотри на винапи это слишком тру-способ, не тебе им заниматься. Qt неплох, как говорит >>455445 , но будь готов к тому, что вместе с программой тебе придётся тащить Qt5Core.dll, Qt5Widgets.dll, Qt5GUI.dll и ещё тонны библиотек.
Касательно древних элементов гуя - тут https://msdn.microsoft.com/en-us/library/windows/desktop/bb773175%28v=vs.85%29.aspx написано, как это решать.
3) Использовать из C++ шарповую библиотеку? Компилируешь шарповый код как dll, дальше:
1. Объявляешь в C++-коде необходимую функцию как extern-прототип.
2. Пишешь LoadLibrary, в параметрах указываешь имя dll.
3. Вызываешь GetProcAddress с именем нужной функции, преобразовываешь результат в указатель на объявленную функцию.
Вот статья: http://rsdn.ru/article/baseserv/dlluse.xml

В шарпе из C++ всё несколько проще поэтому не тру. Опять же, компилируешь C++-код в dll, потом просто в шарп-коде пишешь следующее:
[DllImport("Cpplib.dll")] //Это твоя библиотека, которую ты используешь
int MyFunc(); //Это функция, которую ты собираешься использовать из библиотеки. Следи, чтобы совпала по сигнатуре.

Опять же, вот https://msdn.microsoft.com/en-us/library/aa984739%28v=vs.71%29.aspx статья.
Аноним 26/03/15 Чтв 22:29:23 #497 №455473 
>>455471
Тащить дополнительные библиотеки совершенно не обязательно. Достаточно просто статически слинковать проект. Делается это вот так: http://www.cyberforum.ru/qt/thread234568.html
Аноним 26/03/15 Чтв 22:42:17 #498 №455476 
>>455473
Со статической линковкой никаких тебе LGPL.
sageАноним 26/03/15 Чтв 23:11:59 #499 №455488 
>>455476
А нахуй они тебе нужны? Делаешь сборку максимально сложной, выкладываешь исходники без какой бы то ни было документации, и вуаля - почти никто не осилит собрать. GPL не запрещает же продавать, просто надо сырцы выложить.
Аноним 27/03/15 Птн 02:21:22 #500 №455554 
>>455476
А зачем тебе LGPL? Если ты собираешься серьезно зарабатывать деньги, то тебя купить Кьют вряд ли заломает. Если же ты опенсорсник, то основной формой распространения все одно будут сырцы.
Аноним 27/03/15 Птн 11:11:44 #501 №455635 
Тонем?
sageАноним 27/03/15 Птн 11:46:30 #502 №455650 
>>455635
А не похуй? 10 страниц же, не сотрется.
Аноним 27/03/15 Птн 18:55:28 #503 №455923 
Аноны, как сделать вывод дня недели, получив его номер?
Аноним 27/03/15 Птн 19:13:43 #504 №455933 
>>455923
Сделать enum со днями недели.
Аноним 27/03/15 Птн 19:18:34 #505 №455935 
>>455923
char* dayOfWeek[] = { "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" }
printf("%s\n", dayOfWeek[dayNumber - 1]);
Аноним 27/03/15 Птн 19:21:26 #506 №455939 
>>455935
Спасибо!
>>455933
enum выводит число вместо названия ведь.
Аноним 27/03/15 Птн 19:49:53 #507 №455956 
14274749930060.png
Поздравьте меня анончики. Нашел работу джуном. Сегодня позвонили, сказали в понедельник приходить оформляться. Господи, слезу с мамкиной шеи, съеду из хрущевки. Господи, спасибо тебе Страуструп.
Аноним 27/03/15 Птн 20:00:09 #508 №455961 
>>455956
Поздравляю, бро.
Ток не стань макакой и дропай, если хуйня.
Хуже ничего нет, чем работать не получая удовольствия от результата.
sageАноним 27/03/15 Птн 20:10:21 #509 №455970 
>>455961
>Хуже ничего нет, чем работать не получая удовольствия от результата.
Есть: работать при этом за доширак.
Аноним 27/03/15 Птн 20:12:49 #510 №455973 
>>455961
Дропать и возвращаться к мамке на шею? Нет спасибо.
В худшем случае пострадаю год и буду искать более "по душе".
Аноним 27/03/15 Птн 20:22:32 #511 №455984 
>>455973
Какой лвл?
Аноним 27/03/15 Птн 20:32:19 #512 №455988 
14274775397010.jpg
>>455984
25
Аноним 27/03/15 Птн 20:44:22 #513 №455992 
>>455988
Отрепортишь потом о первых днях.
Аноним 27/03/15 Птн 20:45:14 #514 №455993 
>>455988
Слава богу, одним двадцатитрехлетним синьором меньше.
Аноним 27/03/15 Птн 20:59:44 #515 №455994 
>>455993
А что не так с 23х летними синьорами?
Знакомый в яндексе в 22 года стал им.
Аноним 27/03/15 Птн 21:02:07 #516 №455997 
>>455994
Правда он жаба кодер.
Аноним 27/03/15 Птн 22:44:42 #517 №456048 
как развернуть макрос в #pragma?
Есть один макрос SHITCODE - строка с файлом и числом. __FILE__ разворачивается нормально, а __LINE__ я в строку перегоняю другими макросами, но ничего не получается - в прагму вставляется имя макроса.
msvc компилятор
sageАноним 27/03/15 Птн 22:58:49 #518 №456050 
>>456048
Нахуя тебе это говно?
Аноним 27/03/15 Птн 23:04:13 #519 №456051 
>>455956
Сколько шел к этому?
Аноним 27/03/15 Птн 23:04:34 #520 №456052 
>>456048
Очень просто -- нужно перестать в 21-м веке пользоваться говном типа макросов и научиться писать нормальный код.
Аноним 27/03/15 Птн 23:06:05 #521 №456053 
Я знаю, что у вас печет от таких вопросов, но я уже гугол сломал.
Как задать вручную двумерных вектор путем перечисления элементов?
Есть какой-нибудь способ задать в коде программы матрицу 3x3, например?
Аноним 27/03/15 Птн 23:10:59 #522 №456055 
>>456053
В STL нету стандартного многомерного контейнера. Тебе нужно написать его самостоятельно.

Хотя, в принципе, можно сделать std::map< pair < int, int >, int >.
Аноним 27/03/15 Птн 23:22:11 #523 №456057 
>>456051
Чуть более года. Точнее начал изучать сам год назад. Пол года затрачивал синтаксис по мере возможности. Потом начал нормальный поиск работы и дополнительно всяк скользкие места и хитрости.
Аноним 27/03/15 Птн 23:23:02 #524 №456058 
>>456057
И не уж-то прокатывает? Просто я боюсь, что нахуй пошлют. Тупой и все дела.
Аноним 27/03/15 Птн 23:26:28 #525 №456060 
>>456050
>>456052
>научиться
В том-то и дело, что я ставлю эти метки по коду, чтобы научиться и потом вернуться и исправить на нормальный код
Аноним 27/03/15 Птн 23:28:31 #526 №456063 
>>456058
Что прокатывает? Меня отшили на 3 собеседования и 7 тестовых заданиях по почте. Каждый раз что-то додрачивал, узнавал что нужно подтянуть. Я даже собеседование на трейни провалил. Вот конце-концов пришел, нормально набеседовался и взяли.
Дорогу осилит идущий же.
Аноним 27/03/15 Птн 23:30:50 #527 №456065 
>>456060
Пиши комментарий с пятью звездочками подряд или каким-то еще уникальным кодом — и все. Любая нормальная IDE может искать по всему проекту.
Аноним 27/03/15 Птн 23:31:20 #528 №456066 
>>456063
Ты меня успокоил. Дрочу дальше.
Аноним 27/03/15 Птн 23:34:38 #529 №456067 
>>456063
О, та же фигня, бро. Я сейчас ищу работу в геймдеве — уже две команды отшили по тестовому, еще к одним сам не пошел. Но каждое тестовое давало новый опыт, прибавляя новые строки в резюме. Так что главное пробовать и не надеяться, что все будет сразу.
Аноним 27/03/15 Птн 23:36:22 #530 №456069 
>>456067
>>456063
А что спрашивают?
Аноним 27/03/15 Птн 23:42:06 #531 №456072 
>>456069
Одна команда просила написать буфер между многопоточным приложением и базой данных, вторая -- многопоточную факторизацию большого объема чисел. Пробовался и там, и там, на серверного программиста.

Третьи задавали нубовопросы по алгоритмам типа печати односвязного списка в обратную сторону и всякие общие штуки типа "как бы вы написали таблицу лидеров".
Аноним 27/03/15 Птн 23:42:15 #532 №456073 
>>456067
А можешь дать пример тестового? Хочу знать, что они делают на самом деле игры делают, конечно же
Аноним 27/03/15 Птн 23:43:05 #533 №456075 
>>456072
Пиздос. Забился под шконку.
Аноним 27/03/15 Птн 23:43:40 #534 №456076 
>>456067
Мне так обидно было, когда проебал задание в гд фирму, относительно простое но не знакомое. А когда расшарил что к чему, вакансию уже закрыли.
>>456069
Открой любой гайд, тысячи их, каждый верен процентов на 80-90. Написать код на листочке. Перевести текст на ходу.
Аноним 27/03/15 Птн 23:44:00 #535 №456078 
>>456073
Смотри сюда: >>456072

Вообще, по впечатлениям геймдевы сейчас ищут очень крутых специалистов даже на джуниоров. И в основном нужна высоконагруженная многопоточность.
Аноним 27/03/15 Птн 23:45:04 #536 №456079 
>>456078
>>456076
Кек. Теперь уже похуй. Я сегодня даже Boost подцепить на Windows не смог. Высплюсь и продолжу завтра. Ну буду дрочить до потери пульса.
Аноним 27/03/15 Птн 23:45:49 #537 №456080 
>>456076
Да вот та же фигня. Я почти уверен, что как минимум вторая фирма не взяла именно из-за того, что я по срокам закопался, потому что старался все сделать идеально и вычитывал часами теорию.
Аноним 27/03/15 Птн 23:47:20 #538 №456081 
>>456079
Буст, кстати, мало кто просит. Более того, как правило в тестовых требуют обходиться голой STL вообще без библиотек.
Аноним 27/03/15 Птн 23:51:49 #539 №456083 
>>456081
Да я просто пытаюсь учиться не просто выполняя примеры из учебника, а пиля что-то свое, пытаясь делать это по уму.

И вот по задачи я столкнулся с тем, что нужен JSON парсер, и парсер командной строки. Если JSON парсер я нашел, то вот командную строку парсить довольно сложно.

Прочитал, что все это готово в Boost.
Аноним 27/03/15 Птн 23:52:06 #540 №456084 
>>456081
С моего опыта буст былв желаемых у половины, мфл у процентов 10. Зато знакомство с никс осями на уровне юзера у трех четвертей, а гит у 90 процентов.
Аноним 27/03/15 Птн 23:56:32 #541 №456085 
>>456084
>мфл
Что это?
Аноним 27/03/15 Птн 23:57:09 #542 №456087 
>>456085
Майкрософтовская оконная библиотека жи.
Аноним 27/03/15 Птн 23:59:31 #543 №456088 
>>456087
мфц же. MFC.

Но говорят, что она старая и никто её уже не пользуется.
Аноним 28/03/15 Суб 00:01:32 #544 №456090 
>>456088
Поддержку никто не отменял.
Аноним 28/03/15 Суб 00:03:36 #545 №456091 
>>456090
Справедливо.
Аноним 28/03/15 Суб 11:54:46 #546 №456160 
>>456088
MFC + WTL = мфл
Собственно обе требуются/желаються довольно редко.
Аноним 28/03/15 Суб 15:04:02 #547 №456235 
>>448310
http://pastebin.com/xX2mRtCT
Почему первый цикл считает первым элементом (первым элементом массива b, равного тому же элементу массива a) просто первый элемент?

Если убираю промежуточные переменные в начале функции, то находит правильно, но тогда второй цикл (копирование элементов) не выполняется, в чем проблема?
Аноним 28/03/15 Суб 15:54:15 #548 №456262 
>>456235
бамп срочно
Аноним 28/03/15 Суб 18:32:48 #549 №456302 
>>456262
Вам в шарагу дебагер не завезли?
Аноним 28/03/15 Суб 21:08:21 #550 №456347 
Как запилить таймер? И будет ли он работать в методе класса, вызывая тот же метод?
Аноним 28/03/15 Суб 21:19:43 #551 №456349 
>>456347
QTimer timer();
Аноним 28/03/15 Суб 21:22:32 #552 №456350 
>>456349
Я не в Qt
Аноним 28/03/15 Суб 21:26:28 #553 №456353 
>>456350
1) делаешь поток;
2) отправляешь в поток функцию с бесконечным циклом с ожиданием по std::chrono;
3) делаешь из потока коллбэк каждый такт цикла.

Вот тебе простенький независимый и точный таймер.
Аноним 28/03/15 Суб 23:00:28 #554 №456391 
Поясните мне как организовать парашу.

Сначала я запилил класс, который считает всякие задачи по математики.

Cls obj(1, 56, 45) //инициализируем.
obj.run() //выполняет всякое говно.
obj.result() //возвращает массив с ответом.

Теперь я решил окошки при помощи QT прикрутить. У меня тут сразу же вопрос: как захуячить матрицу грамотно? Под каждый элемент пилить отдельный QtLineEdit? А если нужно будет прямо на ходу увеличить\уменьшить матрицу?


А теперь непосредственно к сабжу. Как захуячить грамотные Exceptions? Где и как их надо обрабатывать и так, чтобы они были информативны.

Вот, например, подключу я свою библиотеку в Qt-проект, аля #include "myLib.h", где будет весь функционал лежать, а как теперь выкидывать сообщения пользователю о том, что прилетел Exception? И ещё как сделать их более информативными
run()
{
if(a==0)
throw MyExc("Divided by zero");
else
return b/a;
}


try{
obj.run()
}
catch(Excetion &e){
std::cout << "Error was deteted" << e.what() << std::endl;
}

Что-то типо в этом роде? Ничего больше в голову не приходит.

Аноним 28/03/15 Суб 23:05:29 #555 №456396 
>>456391
Кури QTableWidget, если я правильно понял задачу из твоей крайне хуевой формулировки, то это то, что тебе нужно.

А грамотные исключения хуячатся следующим образом: ты берешь и забываешь о существовании подобного механизма. Исключения это безплюсовщина и двадцатый век. Пора уже в современность.
Аноним 28/03/15 Суб 23:09:26 #556 №456400 
>Кури QTableWidget, если я правильно понял задачу из твоей крайне хуевой формулировки, то это то, что тебе нужно.
О, походу почти то, что надо. Буду курить.

>Пора уже в современность.
И какая нынче современность? Как пилить ошибки?
Аноним 28/03/15 Суб 23:17:51 #557 №456407 
>>456400
Ручками проверять условия. Использование исключений говорит о том, что ты не понимаешь, что у тебя в коде происходит и не можешь конкретизировать место ошибки.

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

Ну серьезно, где у тебя в программе может возникнуть ошибка, которую ты не можешь отловить заранее?
Аноним 28/03/15 Суб 23:19:54 #558 №456408 
>>456407
А разве эксепшены не круто? Выглядит довольно прикольно.
Аноним 28/03/15 Суб 23:22:47 #559 №456410 
>>456408
Круто твою мамку в рот бомбить, а в программировании стоит выбирать нормальные механизмы, а не крутые.
Аноним 28/03/15 Суб 23:53:30 #560 №456427 
>>456302
увы, не завезли
sageАноним 29/03/15 Вск 09:40:28 #561 №456499 
>>456391
>QT
>QtLineEdit
Ты специально, да? Хочешь, чтобы моя жопа на кварки распалась?
Алсо, либо, как сказал >>456396, QTableWidget, либо динамически создавай/удаляй QLineEdit'ы (хотя это уебанский способ). Про исключения забудь, это дрисня носорога для ебанутых тырпрайзщиков с миллионами строк бойлерплейта, в котором даже автор не разберется, потому что ему похуй на свою программу, лишь бы денег срубить, а думает пусть кто-то другой (в итоге не думает никто, все только и делают, что кидают и ловят исключения). Он (>>456408) все верно сказал.
sageАноним 29/03/15 Вск 09:41:20 #562 №456500 
>>456499
>он
Промазал. Вот он имелся в виду: >>456410
Аноним 29/03/15 Вск 09:52:29 #563 №456503 
>>456353
В общем погуглил я немного, пришел в итоге вот к такой конструкции:
std::chrono::high_resolution_clock::now().time_since_epoch().count()
Теперь планирую сохранять её данные в переменныую и сравнивать каждый раз разницу.
Это правильный подход, или я опять наделал хуйни?
sageАноним 29/03/15 Вск 10:42:48 #564 №456517 
>std::chrono::high_resolution_clock::now().time_since_epoch().count()
На что только не идут байтоебы, чтобы не использовать нормальный фреймворк. Напомнило AbstractSingletonProxyFactoryBean.
Аноним 29/03/15 Вск 10:44:46 #565 №456519 
>>456517
>нормальный фреймворк
Советы в студию
Аноним 29/03/15 Вск 10:47:00 #566 №456520 
>>456499
>QTableWidget
А там можно динамически добавлять столбцы\строки в таблицу?
sageАноним 29/03/15 Вск 10:57:22 #567 №456522 
>>456519
Будто вообще есть выбор. Qt. Для консолеговна и древних калькуляторов boost (хотя буст это не фреймворк).
sageАноним 29/03/15 Вск 10:59:05 #568 №456524 
>>456520
Нет, блять, нельзя, разработчики строго установили размер 3х4. Пиздец вопросы. Открой хоть раз доки.
Аноним 29/03/15 Вск 11:15:16 #569 №456527 
>>456522
Использовать Qt только для создания таймера?
sageАноним 29/03/15 Вск 11:57:14 #570 №456538 
>>456527
Ну да, лучше использовать костыль на каждую мелкую проблему. Буст хоть заюзай http://www.boost.org/doc/libs/1_57_0/doc/html/boost_asio/tutorial/tuttimer2.html
Аноним 29/03/15 Вск 12:07:52 #571 №456540 
>>456391
Ловля ошибки деления на ноль с помощью исключения это какой-то запредельный пиздос. Такая-то важная ошибка, ну никак руками нули не откинешь!

Вообще, если тебе приходится использовать исключения, значит, у тебя какие-то пиздарики с архитектурой, причем серьезные.
Аноним 29/03/15 Вск 12:08:14 #572 №456541 
>>456538
Может есть что попроще Qt? Или же получше? Что-то в последнее время слишком часто в программировании/от программистов слышу, что лучше юзать Qt.
Странно это, неужели только один годный фреймворк существует?
Аноним 29/03/15 Вск 12:15:28 #573 №456542 
>>456541
Кьют все любят за то, что это предельно простой фреймворк с очень качественной справкой, встроенной в фирменную IDE, который может практически все. Там и полный набор виджетов и model/view для случаев, когда виджеты не справляются, и работа с сетью, и БД, и потоки, и регэкспы, и трехмерная графика, и даже работа со звуком -- причем все делается максимально просто и без выебонов.

Я могу сказать как человек, который на STL начал писать уже после Кьюта -- в основном процесс сводился к "каким десятком строчек реализовать то, что под Кьютом делалось в две строки".

Короче, не ленись и пиздуй изучать Кьют.
Аноним 29/03/15 Вск 12:21:04 #574 №456546 
>>456541
Алсо, я за все время работы с ним помню один или два случая, когда не нашлось стандартного кьютовского объекта для решения моей проблемы.
sageАноним 29/03/15 Вск 12:24:27 #575 №456547 
>>456542
Подписываюсь под каждым словом. Альтернатив по факту нет. Проще уже некуда, возможности по части GUI оставляют далеко позади все другие фреймворки. По части non-GUI разве что буст будет мощнее, но он гораздо сложнее и некрасивый (хотя это уже вкусовщина).
Аноним 29/03/15 Вск 12:28:59 #576 №456550 
>>456542
>>456547
Убедили, Qt использовать явно проще, но что в плане обучения крестам? Ведь по сути я программирую сейчас ради обучения. И в будущем при приёме на работу не будет так, что меня пошлют нахуй, потому что Qt программистов и так дохуя, а им нужны кодеры на глубокоанальном C++.
Аноним 29/03/15 Вск 12:33:55 #577 №456551 
>>456550
Ну, есть два пути обучения -- от низкого уровня к высокому и от высокого к низкому. Мне больше нравится второй, потому что удобнее сначала узнать, что такое собака в целом, а потом -- что у нее внутри. Но тут думай сам.

Qt-программеров ищут меньше, чем чистых плюсовиков, но порядком. Есть одна проблема -- Qt пока еще не шибко оценили в мобильном секторе и вообще фронтэнде, поэтому в основном вакансии с Qt будут из НИИ. Так что, как бы ты не шел, изучить STL тебе необходимо.

Важный момент: не забывай про C++11/14. Они еще не очень широко применяются, но писать в этих стандартах куда как удобнее.
Аноним 29/03/15 Вск 13:30:02 #578 №456565 
гайз, накидайте вопросов с собеседования с++ среднего уровня + вокруг прилегающите темы
Аноним 29/03/15 Вск 15:12:14 #579 №456592 
>>456540
Если функция принимает неправильный аргумент, её не должно ебать, по какой причине она приняла неправильный аргумент. С этим пускай на уровень выше разбираются.
Аноним 29/03/15 Вск 15:14:47 #580 №456593 
>>456551
>поэтому в основном вакансии с Qt будут из НИИ

Неожиданно, с чего бы вдруг?
Аноним 29/03/15 Вск 15:31:07 #581 №456603 
>>456592
неверно.
sageАноним 29/03/15 Вск 16:13:43 #582 №456613 
>>456593
Потому что, вопреки распространенному мнению, в НИИ сидят далеко не мудаки.
>>456592
Вообще-то проверять аргументы - вторая по важности (и первая по порядку) задача функции после, собственно, выполнения возложенного на нее действия.
Аноним 29/03/15 Вск 16:43:04 #583 №456624 
>>456592
>>456613
>>456603
У меня от вас когнитивный диссонанс. Я не знаю кому верить.
sageАноним 29/03/15 Вск 16:53:27 #584 №456628 
14276372079900.png
>>456624
Верь в мою веру в тебя.
Аноним 29/03/15 Вск 17:13:45 #585 №456631 
>>456628
Ты мне бы лучше пояснил, как быть.
Я хочу гибридную программку: gui на qt и консольный интерфейс.
Суть этой программки в работе с самодельной библиотекой, которая решает одну мат задачу. inb4: Уебывай со своими лабораторками. Пишу чисто для себя, лол.


В ней три метода:
1. Конструктор, который принимает три параметра(<int>, <vector<vector>>, <vector>)
-Как проверить, что именно нужные типы пришли?
-Как захуячить проверку того, что второй вектор является квадратной матрицей?
-Как возвращать ошибки? Просто return INCORRECT_MATRIX;?

2. Метод run(), который вычисляет всю эту приблуду. В нем просто несколько функций, которые одна за другой вычисляют нужные данные. Схематично:

int run()
{
int temp = 0;
if((temp = doFoo()) != 0){ return temp; } //doFoo бросает 0, если все хорошо, и больше нуля, если все плохо.
if((temp = doBar()) != 0){return temp;}
//И так ещё несколько разных функций, которые обсчитывают некоторые данные.

return SUCCESS;
//В самом конце функции. Пользовательская программа уже может обработать и понять, что можно уже запросить результаты.
}

Тут самое интересное. Я хочу реализовать много поточность на этом этапе. Ведь пользователю, может быть, придется обсчитывать много данных:

-Как вообще должна правильно организовать многопоточность? Например, мне надо обсчитать 10 задач. Пользователь вводит, что хочет посчитать в 3 потоках, аля app.exe -t 3. И программа должна распределить задачи по потокам, поставить в очередь и т.д.
-Как проинформировать пользователя, что вычисления закончились? И можно попросить результат.
-Где хранить результат? У меня была идея хуячить вектора в связанный список, а потом тупо его выплевывать пользователю. Однако там может быть не один вектор, а целая куча данных. (до 5 матриц).
Аноним 29/03/15 Вск 17:19:41 #586 №456632 
>>456631
А да. И ещё про GUI.
Вот пользователь пишет через консольку:
app.exe --window

Адекватен ли вариант в функции main реализовать подобную конструкцию:

int main()
{
key // параметры командной строки, я их boost'ом разбираю их парсером.

if(key == "h") {getHelp();}
if(key == "b") {coreApp();} //типа консольная часть, которая реализует консольные возможности;

if(key == "window") {QApplication app(argc, argv); return app.exec();} //Запускаем уже GUI;
return 0;

}

Я вообще ещё не совсем понимаю, как это все функционирует(в плане GUI), поэтому, наверное, спрашиваю хуйню. Или это совсем уебанский вариант?

Аноним 29/03/15 Вск 18:10:21 #587 №456646 
http://pastebin.com/B8ZhBFy0

Тут часть кода только. При попытке скомпилировать с последней строчкой - ошибка компиляции. Почему?
sageАноним 29/03/15 Вск 18:11:43 #588 №456648 
>>456631
>Как проверить, что именно нужные типы пришли?
В крестах нет дженериков, как в жабе, так что если ты объявил параметр как std::vector<int>, то это будет вектор из int'ов. Ничего проверять не надо.
>Как захуячить проверку того, что второй вектор является квадратной матрицей?
Создать тип Matrix с методом isSquare, где уже производить проверку, считая количество строк/столбцов.
>Как возвращать ошибки? Просто return INCORRECT_MATRIX;?
Для проверки объекта на ошибки в его состоянии (скажем, неправильные аргументы конструктора) делаешь метод isValid для класса, если же нужен конкретный тип ошибки, то что-то типа метода error, возвращающего один из элементов enum Error (в том числе NoError, если ошибки нет).
>Как вообще должна правильно организовать многопоточность
QFuture<ResultType> f = QtConcurrent::run(&function, arg1, arg2, ...);
QFutureWatcher<ResultType> *w = new QFutureWatcher<ResultType>;
connect(w, SIGNAL(finished()), receiver, SLOT(taskFinished()));
w->setFuture(f);
>вектор
>вектор
>вектор
Говно без задач. Используй list. Чтобы использовать вектор, нужно понимать, когда его надо использовать и почему.
>Адекватен ли вариант
Нет.
yourapp.exe - сосноль
yourapp-gui.exe - GUI. Гуи запускают внутри yourapp.exe и обмениваются данными через stdin/stdout/сокеты/локальные сокеты (пайп и т.п.).
sageАноним 29/03/15 Вск 18:13:25 #589 №456649 
14276420057220.png
>>456646
Хрустальный шар что-то подвис немного, щас дравйвер астрала переустановлю и угадаю. Полный код давай, долбоеб.
Аноним 29/03/15 Вск 18:16:05 #590 №456651 
>>456649

Уже разобрался.
sageАноним 29/03/15 Вск 18:19:31 #591 №456654 
>>456651
Вот какие чудеса творит сажа.
Аноним 29/03/15 Вск 18:31:32 #592 №456656 
>>456648
>если же нужен конкретный тип ошибки
Можно пример реализации, заинтересовало.

>QFuture<ResultType> f = QtConcurrent::run(&function, arg1, arg2, ...);
Бля, не в том вопрос.
1. Многопоточностью должна заниматься пользовательская программа или математическая библиотека?
2. Можно ли без Qt (boost, STL) и
>automatically adjust the number of threads used according to the number of processor cores available.
А только пользовательская настройка (аля сколько потоков создавать на каждую задачу)? Или это слишком ебливо и не стоит об этом думать.

>yourapp.exe - сосноль
Есть статья с примерами? Нихуя не понял.
sageАноним 29/03/15 Вск 19:01:08 #593 №456663 
>>456656
>Можно пример реализации, заинтересовало.
http://pastebin.com/0Y5dGLja
>Многопоточностью должна заниматься пользовательская программа или математическая библиотека?
Зависит от задач. Откуда я знаю, что тебе надо. В общем случае какие-то рекомендации дать невозможно.
>Можно ли без Qt
Можно. Гугли сам.
>А только пользовательская настройка (аля сколько потоков создавать на каждую задачу)?
QThreadPool::globalInstance()->setMaxThreadCount(100); (Но смысла в этом никакого, быстрее по понятным причинам не станет. Это имеет смысл только для задач, которые слабо процессор, типа работы с сетью.)
>Есть статья с примерами? Нихуя не понял.
Есть. В гугле. Хотя, если не понял, то рано тебе еще. Побольше опыта будет, тогда берись.
sageАноним 29/03/15 Вск 19:02:16 #594 №456664 
>>456663
>слабо нагружают процессор
фикс
Аноним 30/03/15 Пнд 01:45:21 #595 №456771 
>>456654

Ну на самом деле не разобрался, а тебя испугался и решил не ворошить дальше.
Аноним 30/03/15 Пнд 17:06:08 #596 №457036 DELETED
Каким образом кресты используются в геймдеве? Что на них пишут? С чем совмещают?
Аноним 31/03/15 Втр 15:55:11 #597 №456897 
Чем отличается int p от int p?
Аноним 31/03/15 Втр 15:56:28 #598 №456898 
14278065888890.png
>>456897
Макака съела мои звёздачки.
Аноним 31/03/15 Втр 16:00:02 #599 №456900 
Чем отличается int p от int p?
Аноним 31/03/15 Втр 19:45:16 #600 №457007 
>>456898
ничем же
лол, это был 1-ый вопрос на моем собеседовании 2 года назад в интел
Аноним 31/03/15 Втр 23:41:48 #601 №457130 
Господа, какой есть элегантный путь сделать возможность подключения динамических либ? Есть вероятность, что нужно будет подключать так же СИшные.
Так же это должно быть "на горячую".

Пока у меня крайне убого выглядит. Хранится, например, так:

static const string LibraryInitName = "library_call_init"
typedef bool(LibraryInit)();
LibraryInit lib_initer;

И уже цепляется GetProcAddress или же dlsym. В зависимости от текущей ОС.

По сути либа должна содержать не более 5 обязательных функций.
Подобного типа: init(), uninit(), task_main(void *data), ... ;

Как вы понимаете, то решение крайне узкое. Есть ли какой-то более элегантный и расширяемый вариант?
Аноним 03/04/15 Птн 16:27:22 #602 №458433 
Есть задача. Не могу разобраться в выделенном месте. Мне надо организовать шифровку и дешифровку. Алфавит шифра и обычный я уже написал. Подскажите как заставить узнавать букву и заменять на букву из измененного алфавита. Скину на кошелек вам немного денег за помощь,обещаю.

#include <iostream>
#include <conio>
#include <windows>
#pragma hdrstop

//---------------------------------------------------------------------------
using namespace std;
char Rus(const char);
#pragma argsused

int main(int argc, char argv[])
{
char str[50], str1[50] = ""; // исходная строка
int k; // кол-во позиций для сдвига
int choice; // значение выбора действия
char m[32]; // массив русский алфавит
char s[32]; // массив преобразованный
int strlength;

char b = 128;
for(int i = 0; i < 32; i++)
{
m = b;
b++;
}

cout << Rus("Введите строковое сообщение: ") << endl;
gets(str);
cout << Rus("Введите количество позиций для сдвига") << endl;
cin >> k;
getchar();

if(k > 0)
for(int i = 0; i < 32; i++)
{
s[(i + k)%32] = m;
}

else
for(int i = 0; i < 32; i++)
{
s = m[(i - k)%32];
}

cout << Rus("Алфавит: ") << endl;
for(int i = 0; i < 32; i++) // вывод обычный алфавит
{
cout << m;
}

cout << endl;

for(int i = 0; i < 32; i++) // вывод шифрованный
{
cout << s;
}
cout << endl << endl;

cout << Rus("Для выбора действия выберите число") << endl;
cout << Rus("1 - шифрование") << endl;
cout << Rus("2 - дешифровка") << endl;
cin >> choice;

strlength = strlen(str);

if (choice == 1)
{
for(int i = 0; i < strlength; ++i)
{
str1 = m[str % 32];
}
}

else if (choice == 2)
{
for(int i = 0; i < strlength; ++i)
{
str1 = s[str - k % 32];
}
}

cout << endl << Rus("Результат:") << endl;
cout << str1 << endl;

cout << "----------------------------" << endl;
getch();
return 0;
}
//---------------------------------------------------------------------------
char Rus(const char *text)
{
static char BufRus[255];
CharToOem(text, BufRus);
return BufRus;
}
Аноним 03/04/15 Птн 20:05:01 #603 №458518 
>>458433
Ебать говнина.
Аноним 03/04/15 Птн 20:48:06 #604 №458541 
>>458518
Всмысле
Аноним 04/04/15 Суб 08:56:21 #605 №458648 
>>458541
Пошол нахуй
Аноним 04/04/15 Суб 18:18:13 #606 №458831 
>>457007
А что за операция разыменования?
Аноним 04/04/15 Суб 20:31:28 #607 №458916 
>>458831
а у тебя классные вопросы.
ладно, не буду быдлом как все тут, отвечу - разыменование указателя - операция получения по адресу указателя его содержимого.
int v = 10; int p = &v;
std::cout <<
p; // разыменование
Аноним 04/04/15 Суб 20:32:09 #608 №458917 
>>458916
ну ты понел там вездочка перед р
Аноним 05/04/15 Вск 19:18:12 #609 №459420 
[code]
#include <stdio.h>
#include <cstring>

const int SIZE = 1024;

//Следующая функция осуществляет конкатенацию си-строк.
//Результирующая строка возвращается в качестве значения функции.

char cat(const char s1, const char s2)
{
char
result = new char[strlen(s1) + strlen(s2) + 1];
while (result++ = s1++)
;
result--;
while (result++ = s2++)
;
return result;
}

//Тест.

int main()
{
char s1[SIZE];
scanf_s("%1023s", s1);
char s2[SIZE];
scanf_s("%1023s", s2);
printf("%s", cat(s1, s2));
return 0;
}
[/code]

При попытке запуска ошибка: "Необработанное исключение по адресу 0x0F381340 (msvcr120d.dll) в cat.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0x00CE0000."

Прошу ссаными тряпками не гнать, я шкальник и сам осознаю свою ничтожность.
comments powered by Disqus

Отзывы и предложения