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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
sage #2 #1016664
>>1016662 (OP)

>C+ #55


Не мог не обосраться.
sage #3 #1016665
>>1016664
Впрочем, это ещё в прошлом треде.
1016669
sage #4 #1016666

>>1016666

10166661016669
#5 #1016669
>>1016664
>>1016665
>>1016666
смажь мазью свою попку и ложись баеньки))
1016670
sage #6 #1016670
>>1016669

> пук

#7 #1016769
>>1016662 (OP)
Плюсы или джаву выбрать?
10167881018564
#8 #1016771
>>1016664
Это такой траленг от хуйтера ситхов.
1016787
#9 #1016787
>>1016771
Это шизик из старых тредов бомбит, что картинку поменяли.
1016979
#10 #1016788
>>1016769
Джаву. Плюсы уже не нужны в 2017
1016832
#11 #1016801
Сначала вкатиться в Си, а потом в кресты, или наоборот?
#12 #1016816
>>1016801
Кресты это си с классами. Начни с си, потом классы освоишь.
1016858
#13 #1016832
>>1016788
хочу драйверы для микроволновок писать
10168541016979
#14 #1016833
Что скажите по Си--?
#15 #1016854
>>1016832
Драйвера не пишут на крестах.
#16 #1016858
>>1016801

Вот таких плесневелых главное не слушай, >>1016816 , си с классами у него, охуеть вообще, на улице перестройка и играет ласковый май. Ныряй сразу в кресты, причем именно в 11, пока забей на более ранние и более поздние.
1016911
#17 #1016911
>>1016858
Ну можно и так, если "прямо сейчас" надо вкатиться.
А по хорошему бы конечно, начать с Си.
1016914
#18 #1016914
>>1016911
Нахуя если это взаимозаменяемые языки разошедшиеся по синтаксису лет как десять?
1016919
#19 #1016919
>>1016914

> взаимозаменяемые языки


Ты уверен?
#20 #1016931
Мне нужно чтобы статическая функция возвращала большой объект, как это сделать, чтобы объект не копировался, без поинтеров?

class BS {
char buffer[65536];
static BS getRandom() {
BS bs;
//fill buffer with random data
return bs;
}
}
#21 #1016938
>>1016931
По указателю передавай (через std::unique_ptr, например или просто указатель (не забудь выделить память). А вообще в таких случаях, как правило, компилятор применит RVO (Return Value Optimization) и будет писать твой BS в стековом фрейме одного из предыдущих вызовов. Так что можешь не запариваться.
Ну а для больших объектов придумана куча.
10170271018564
#22 #1016941
>>1016931
Референс возвращай, дебичь
10169511018587
#23 #1016943
>>1016931
...
static void getRandom(BS& bs) { /fill buffer/ }
...
BS bs;
BS::getRandom(bs);
#24 #1016946
Посмотрите код, в чем проблема?

else :false
if Billy=лох else 0 :approveded
...............
range(i=0, k=2, x=b)
b:onload

Write:"Billy fuccking veryfecalishhiet"
Print ("Billy fuccking veryfecalishhiet")

end.
10169481018564
#25 #1016948
>>1016946
Что-то на французском. Не пойму ничего...
#26 #1016951
>>1016941
Дебич тут только ты.
1016956
#27 #1016956
>>1016951
НЕТ ТЫ, МАМ СКАЖИ ЕМУ
#28 #1016964
Как суметь прочитать огромное количество страниц (1000) и при этом не сойти с ума?
#29 #1016979
>>1016801

>Сначала вкатиться в Си, а потом в кресты, или наоборот?


Нахрен вы задаёте вопросы, на которые уже отвечали столько раз, что решили вынести в faq?
https://isocpp.org/wiki/faq/how-to-learn-cpp#learning-c-not-a-prereq

>>1016787

>Это шизик из старых тредов бомбит, что картинку поменяли.


Если бы ты не был полным дебилом, то понял бы, что я:
1. Бомблю не из-за картинки, в первую очередь.
2. Вообще не бомблю, в нулевую очередь.
Кстати, к шизофрении я не особо склонен.

>>1016832

>хочу драйверы для микроволновок писать


Их на Java пишут. Если ты почитаешь историю этого языка, то узнаешь, что его изначально создавали для микроконтроллеров бытовой техники.
#30 #1016980
>>1016964
Что читаешь?
1016983
#31 #1016982
>>1016964

>Как суметь прочитать огромное количество страниц (1000) и при этом не сойти с ума?


Большинство читало больше и не сошло. Всё зависит от того, за какое время и каких страниц.
1016984
#32 #1016983
>>1016980
Стэнли Липпман, Жози Лажойе и Барбара МуЯзык программирования C++

Но думаю сначала прочитать прату по с++, а затем вернуться к этой книге.
#33 #1016984
>>1016982
>>1016983

Насколько быстро можно это прочитать? Просто я за весь месяц прочитал всего лишь чуть более ста страниц.
#34 #1016989
>>1016983
За неделю.
1016990
#35 #1016990
>>1016989
Как? Один я такой слабоумный, что

> Просто я за весь месяц прочитал всего лишь чуть более ста страниц.

10169921018564
#36 #1016992
>>1016990
Ты наверное в дотку играл этот месяц.
1016994
#37 #1016994
>>1016992
Нет, я и до этого пытался читать книги по C#, джаве, питону, но все читалось как-то очень медленно.
10169971017000
#38 #1016997
>>1016994
Родители курят/пьют?
Как беременность протекала нормально? Травм не было?
1017009
#39 #1017000
>>1016994
Может ты hanjubasom балуешься?
Парнишка один при мне стоял у подъездной двери и вспоминал в какой квартире он живет.
1017009
#40 #1017009
>>1016997
Когда я родился родители не пили и не курили.
Насчет беременности мать сказала, что все было нормально. Хотя в глубоком детстве меня иногда водили на энцефалограммы и к невропатологу, не знаю зачем.
>>1017000
Ничем не балуюсь.
1017023
#41 #1017023
>>1017009
Бло, братан я даже хз тогда. Если ты не совсем нуб, то книги должны легко идти. Простое быстро пролистывай, сложное разберай. Если совсем не варит котелок, оставь закладку и потом вернись перечитать.
2 месяца 100 страниц читать это даже хз как назвать.
Может у тебя мотивации нет?
обычную закладку в книгу, не ту что подумал тц майор
1017125
#42 #1017027
>>1016938
Только не RVO, а NRVO (Named Return Value Optimization)
#43 #1017125
>>1017023

>2 месяца 100 страниц читать это даже хз как назвать.


Может он там все упражнения решает.
1017142
#44 #1017142
>>1017125
В том то и дело, что упражнения даются очень легко и быстро, но текст читаю очень медленно.
1898 Кб, 3409x3513
#45 #1017166
Ньюфаг вкатывается в тред с дебильным вопросом.
Почему нужно использовать переменную цикла как ссылку, для изменения символа в std::string? Это связано с тем, что строки в глубине свой души остаются const char*? И как нам помогает при этом ссылка? Почему нельзя использовать обычную переменную?
10171771017200
#46 #1017174
>>1016964

>Как суметь прочитать огромное количество страниц (1000) и при этом не сойти с ума?


Лучше их читать после практики. Тогда сразу будешь понимать, что тебе нужно, а что - нет. Мне вообще гугла, Мейерса и гнутых STL-исходников хватило в свое время, чтобы вкатиться (не с нуля, конечно). Я писал для обучения маленькую либу с контейнерами: вектор, дек, хэш-тэйбл, интрузив лист. На практике сразу ясно становится, что зачем нужно и как применяется. А просто книгу ботать - бесполезно, мне кажется. Ничего не отложится.
1017189
#47 #1017177
>>1017166

>Почему нельзя использовать обычную переменную?


Потому что обычная переменная после изменения ничего со строкой не сделает, а ссылка изменит символ в строке, на который ссылается.
1017179
#48 #1017179
>>1017177

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


Я и хочу узнать, почему так происходит.
1017184
#49 #1017184
>>1017179
Переменная - это независимый кусок памяти. Что тут не понятно?
1017192
#50 #1017189
>>1017174
Подскажи другому нюфагу: чем интрузив контейнер от нон интрузив отличается?
1017198
#51 #1017192
>>1017184
Я понимаю, что независимая, но зачем ссылка? Ссылка - это ведь другое имя переменной?
1017193
#52 #1017193
1017195
#53 #1017195
>>1017193
Ну так а в чем тогда разница использования: изменять ссылку, т.е изменять переменную, либо сразу изменять переменную без ссылки?
10171961017197
#54 #1017196
>>1017195

> изменять ссылку


Ссылки не меняются, меняются переменные, на которые они ссылаются.
1017199
#55 #1017197
>>1017195
Вообще, ты не в тот тред пришёл с такими вопросами.
1017199
#56 #1017198
>>1017189

>чем интрузив контейнер от нон интрузив отличается?


Обычный контейнер управляет объектами, которые в него добавляют, интрузив - объекты сами являются хранилищем контейнера.
List<T> - обычный лист, который менеджит память, управляет добавлением, удалением элементов.
Интузив: struct MyListElem : IntrusiveListElement<MyListElem> (или композицией вместо наследования), где struct IntrusiveListElement { T* next }; Причем эти элементы могут лежать в каком-то другом контейнере, но при этом быть частью списка.
#57 #1017199
>>1017196
Ну так а почему бы сразу не изменить переменную? Зачем изменять ее через ссылку? Почему так придумано?
>>1017197
В остальных тредах не знают, что такое ссылка и гонят меня сюда.
1017210
#58 #1017200
>>1017166
Потому что обычная переменная в теле цикла получает копию символа. Все изменения будут действовать только в пределах тела цикла. А ссылка - это по сути синтаксический сахар над указателем. А он указывает на символ в изначальной строке.
С указателями-то разобрался?
#59 #1017202
>>1017200

>по сути


Ты выражаешься как выпускник филологического факультета.
1017206
#60 #1017204
>>1017200

> ссылка - синтаксический сахар над указателем


Так вроде же указатель - это объект, а ссылка нет, это всего лишь другое название переменной
#61 #1017206
>>1017202
Боюсь, выпускники филфака выражаются куда изящнее.
Так, что боцману флота записать охота
#62 #1017207
>>1017204

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


Правильно мыслишь. Всяких питухов, которые мешают в кучу определения стандарта и детали реализации и потом принимают второе за первое не слушай.
10172101018890
#63 #1017208
>>1017204
В твоём случае это название какой переменной?
1017212
#64 #1017210
>>1017207
Хорошо, так а в чем разница?
>>1017199
#65 #1017211
>>1017200

>синтаксический сахар над указателем


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

Всех свойств ссылок ты через указатели не реализуешь, так что не пизди насчёт синтаксического сахара.
1018564
#66 #1017212
>>1017208
Та, которая бегает в цикле по строке
10172191017220
#67 #1017213
>>1017204
Нет.
Это именно что удобная конструкция.
Чтобы лишний раз клаву не топтать.
https://pastebin.com/qS0q35dc
10172151017218
#68 #1017215
>>1017213
Ну хуй знает, вроде в книге написано обратное
#69 #1017216
>>1017204
И вообще, встречал мнение по формату кода. То, что всякие структуры лучше в функции передавать по указателю или ссылке, ты, надеюсь, в курсе. Так вот, некоторые советуют входные параметры (типа структур) передавать по ссылке, а выходные - по указателю, чтобы сразу по виду сигнатуры было понятно, что к чему.
#70 #1017218
>>1017213

>Нет.


Пидора ответ.
#72 #1017220
>>1017212
Переменная же не может обладать чужой памятью, она уникальна в данный момент времени. Достаточно знать этого факта, чтобы понять, почему при изменении переменной кроме неё ничего не меняется.
Ты же когда в сортир идёшь, у твоего соседа по дому днище в кровати не срывает. Вы - два независимых объекта/куска памяти со своими состояниями/значениями в памяти.

Ты часом не из Java-мира к нам пришёл?
10172211017223
#73 #1017221
>>1017220

> из Java мира


Почти угадал, я джва года писал хеловорлды на шарпе
#74 #1017223
>>1017220

>Ты часом не из Java-мира к нам пришёл?


После джавы все понятнее должно быть - там все ссылки кроме примитивов.
10172301017232
#75 #1017230
>>1017223
Скорее наоборот, он под переменной понимает что-то вроде ссылки или указателя. Ведь это всё, что он видел.
1017231
#76 #1017231
>>1017230
У меня были такие же мысли про >>101722
1017232
#77 #1017232
>>1017231
>>1017223, я хотел написать
#78 #1017247
>>1016983
у лиммана есть вводная книжка по крестам
она охуенная
читай ее, делай там упражнения
а потом уже сразу начинай что-нибудь практическое кодить
а потом уже что непонятно, у страуструпа кусками дочитаешь
если бы у меня была машина времени, то себе молодому я дал бы такой совет
#79 #1017388
Не понимаю во всех этих указателях и ссылках, особенно если там какой-то *void. Что почитать?
#80 #1017392
>>1017388

>*void


Ну, в общем, указатели на указатели на указатели.
#81 #1017449
>>1017388

>Что почитать?


Шапку треда.
14 Кб, 743x122
#82 #1017560
#83 #1017641
>>1017388
Есть специальная книга по указателям, но там про чистый Си.
Richard M. Reese "Understanding and Using C Pointers. Core Techniques for Memory Management"

А вообще лучше прочти это:
Стэнли Липпман, Жози Лажойе и Барбара МуЯзык программирования C++
#84 #1017665
Аноны, посоветуйте что-нибудь по параллельному погромированию в c++
Чтоо использовать для создания пула потоков? Как с этим работать?
10176671018564
#85 #1017667
>>1017665
К сожалению, придётся использовать какую-нибудь либу. Boost, например.
1017720
#86 #1017720
>>1017667
В С++11 уже есть потоки.
1017723
#87 #1017723
>>1017720
Я может неправильно понял. Подумал, что ему нужен готовый пул.
#88 #1017767
поясните за обработку исключений\ошибок на плюсах. где целесообразна и какие основы этого дела. приходится ли пользоваться возможностями библиотеки си. хотелось бы выбрать основной инструмент, но там дохуя всего в библиотеке.
#89 #1017773
>>1017767
еще поясните с чего начать вкатывание в qt.
#90 #1017794
>>1017773
С вкатывания в кутю.
#91 #1017845
>>1017773
Школу закончи.
10178551017929
#92 #1017855
>>1017845
закончил тебе защеку
#93 #1017929
>>1017845

>Школу закончи.


Зачем?
#94 #1018012
>>1017767
Книжечки в шапочке. Там всё есть.
#95 #1018140
>>1017767

>поясните за обработку исключений


В 90% случаев ничего явно обрабатывать не надо, в отличие от обработки возвращаемых значений.
#96 #1018142
>>1017767

>поясните за обработку исключений\ошибок


Поясняю

> где целесообразна


Там где есть исключения/ошибки.

>приходится ли пользоваться возможностями библиотеки си


Приходится

>хотелось бы выбрать основной инструмент


Выбирай printf
1018143
#97 #1018143
>>1018142

>Выбирай printf


fmtlib лучше.
1018147
#98 #1018147
>>1018143
system() !
#99 #1018148
>>1017767

>поясните за обработку исключений\ошибок на плюсах


try-throw-catch

>где целесообразна


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

>приходится ли пользоваться возможностями библиотеки си.


Можно, но не обязательно. Например, можно использовать С-схему распределения памяти для перегрузки оператора new или [], однако сам по себе С++ предоставляет достаточно мощные средства.

>основной инструмент


try-throw-catch. exit(), abort(). Вообще говоря, С++ предлагает тебе самостоятельно описать обработчики ошибок, и ни в чём тебя не ограничивает.
#101 #1018271
Крестоносцы, объясните: зачем указатель на базовый полиморфный класс может указывать и на класс-потомок? Я не понимаю выигрыша.
10182731018279
sage #102 #1018272
Как же заебали ньюфаги...
#103 #1018273
>>1018271
Виртуальные функции.
1018274
#104 #1018274
>>1018273
Ну и? Виртуальные функции всё-равно либо наследуются, либо переопределяются.
1018303
sage #105 #1018279
>>1018271
Указатель на базовый неполиморфный тоже может.
1018284
#106 #1018280
Поясните, почему MSVC выдает 12, а gcc и clang 8?

#include <iostream>
int main()
{
const std::vector<int> f(2);
const std::vector<int>::const_iterator cit = f.begin();
std::cout << sizeof(cit) << std::endl;
}
sage #107 #1018281
>>1018280
Потому что таков размер const std::vector<int>::const_iterator

Всегда Ваш,
Капитан К.О.
1018283
#108 #1018283
>>1018281
Ну а почему разработчики MSVC захотели сделать его 12, а не 8?
С чем это связано?
1018286
#109 #1018284
>>1018279
Я всё ещё не вижу выигрыша. Или он начинает проявляться только с использованием динамического распознования типов?
1018286
#110 #1018285
>>1018280
Почему не написать
using namespace std;
В глазах не рябит от std:: по всему тексту?
1018288
sage #111 #1018286
>>1018283
Им так было нужно.
>>1018284

>Я всё ещё не вижу выигрыша.


Потому что ты проиграл.
10182871018288
#112 #1018287
>>1018286

>ты проиграл.


...битву но не войну. Вот в твоей практике подобное поведение указателей приносило пользу?
1018564
#113 #1018288
>>1018285
Мне так удобнее.
>>1018286

>Им так было нужно.


Ну а почему разработчикам clang и gcc нужно было 8, а не 12?
1018289
sage #114 #1018289
>>1018288

>Ну а почему разработчикам clang и gcc нужно было 8, а не 12?


Чтобы копировать итератор было дешевле.
10182901018292
#115 #1018290
>>1018289

>Чтобы копировать итератор было дешевле.


>дешевле


Это как?
sage #116 #1018291
>>1018280

>почему MSVC выдает 12


http://rextester.com/l/cpp_online_compiler_visual тут выдал 8. Там 64-битный компилятор.
10182951018304
#117 #1018292
>>1018289
Получается, что разработчики MSVC обосрались, определив 12 вместо 8?
1018564
sage #118 #1018293
>>1018280

>почему MSVC выдает 12


http://webcompiler.cloudapp.net/ 32-битный, выдаёт 4
10182951018304
26 Кб, 1336x390
#119 #1018295
10182961018302
sage #120 #1018296
>>1018295
А если Release?
1018304
sage #121 #1018298
>>1018280

>const std::vector<int>::const_iterator cit = f.begin();


Зачем тебе константный итератор?
1018309
sage #122 #1018302
#123 #1018303
>>1018274
Чтобы их вызывать, очевидно же.
47 Кб, 1544x510
45 Кб, 1316x505
48 Кб, 1314x554
49 Кб, 1361x554
#124 #1018304
>>1018296
>>1018293
>>1018291
Провел эксперименты, результаты пикрил.
Почему так происходит? В чем разница между Release и Debug?
1018306
sage #125 #1018306
>>1018304

>В чем разница между Release и Debug?


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

Посмотри определение в заголовочном файле.
1018307
sage #126 #1018307
>>1018306

>выхода за границы итератора


Выхода за границы вектора*
#127 #1018309
>>1018298
Проводил эксперименты.
Просто const_iterator - это константный итератор, или итератор на константу?
А если const const_iterator - это константный константный итератор или константный итератор на константу?
10183311018564
sage #128 #1018331
>>1018309
Так же, как с соответствующими указателями.
#129 #1018546
Вопросик такой. Решил упростить свой Сишный код няшными функциями новой гомоС++.

Будет ли auto в данном коде работать как var? Функция вызываемая мной возвращает NTSTATUS, по идее я хочу чтоб _status после вызова стал типом NTSTATUS и мне не пришлось обьявлять для этого дополнительную переменную.

Вот код :

https://pastebin.com/vEqu6beF
1018564
#130 #1018564
>>1016224
Как уже сказали, смысл в этом только один: позаёбывать препода, так как с первого раза всё это заходит трудно. У нас в инсте вообще сначала с машины Тьюринга начинали.
Если ты сомневаешься в том, что тебе надо платить эти 20к, то лучше здесь анона найди, будешь платить за прогресс и удовлетворение.
>>1016295
Ебу дал? Если тебе так сильно нужна производительность - отключи эксепшены в компиляторе (будут быстрее функции вызываться, азаза). Лучшие умы планеты делают всё для того, чтобы уничтожать стопу на С++ было так же эффективно, как на С.
>>1016769
Спроси это в отдельном треде, а не в треде плюсов. Раз ты спрашиваешь в треде плюсов: выбрать плюсы, так как джава дно.
>>1016931
Возвращай ссылку, но только ты можешь себе в ногу выстрелить, если класс сдохнет. CopyOnWrite в плюсах запрещён.
>>1016946
Сколько ещё раз ты этот кал будешь постить?
>>1016964
Конспектируй, блядь, будь мужиком.
>>1016990
Ты не слабоумный, просто плюсы - сложный язык, особенно - для начинающих. Потом быстрее пойдёт, если будешь упражняться.
И вообще программирование - это сплошное легаси, которое разгребать ещё десятилетиями будут. Коспектируй!
>>1016938
Если у него класс временный - тогда да, но тогда его стопа мертва ещё до рождения. Если у него класс обычный - никакого RVO быть не может.
Хотел нас потраллить?
>>1017204
Что ты пишешь, блядь? Всё, что ты можешь найти в языуе без подключения хеадеров - это интегральные типы (поправьте меня, если неправ), какие ещё объекты? Ссылка и указатель - один хуй, только одно надо разыменовать и можно переуказывать на другую переменную, а другое - не надо, и пересослать нельзя.
(про конст не говорим)
>>1017211
Важные отличия есть, но на суть не влияют.
>>1017388
void - это char , который можно приводить ко всему без предупреждений о типизации. char - это тип ячейки памяти, может быть больше 8 бит, и вовсе не "буква".
>>1017665
OpenMP нагугли, почти во всех современных компиляторах поддерживается.
>>1017773
С изучения примеров из дистрибутива Qt и тщательного чтения справки в Qt Creator.
>>1017767
Ты можешь писать на C++ без использования массивов на стеке и вообще почти всего из С. Но так никто не делает, поэтому читать чужой код будет трудно. Твой основной инструмент - документация, блядь - cppreference и стандарт.
>>1018287
В алтависту! Быстро, решительно!
>>1018292
Алтавистуй C++ ABI и про еблю с либами и extern "C".
>>1018309
- итератор (указатель) на константу
- неизменяемый итератор на константу (но на возможность арифметических операций с ним не влияет)
>>1018546
Да, всё будет. auto именно это и означает - вывод типа из инициализатора (должен быть вместе с объявлением).
#130 #1018564
>>1016224
Как уже сказали, смысл в этом только один: позаёбывать препода, так как с первого раза всё это заходит трудно. У нас в инсте вообще сначала с машины Тьюринга начинали.
Если ты сомневаешься в том, что тебе надо платить эти 20к, то лучше здесь анона найди, будешь платить за прогресс и удовлетворение.
>>1016295
Ебу дал? Если тебе так сильно нужна производительность - отключи эксепшены в компиляторе (будут быстрее функции вызываться, азаза). Лучшие умы планеты делают всё для того, чтобы уничтожать стопу на С++ было так же эффективно, как на С.
>>1016769
Спроси это в отдельном треде, а не в треде плюсов. Раз ты спрашиваешь в треде плюсов: выбрать плюсы, так как джава дно.
>>1016931
Возвращай ссылку, но только ты можешь себе в ногу выстрелить, если класс сдохнет. CopyOnWrite в плюсах запрещён.
>>1016946
Сколько ещё раз ты этот кал будешь постить?
>>1016964
Конспектируй, блядь, будь мужиком.
>>1016990
Ты не слабоумный, просто плюсы - сложный язык, особенно - для начинающих. Потом быстрее пойдёт, если будешь упражняться.
И вообще программирование - это сплошное легаси, которое разгребать ещё десятилетиями будут. Коспектируй!
>>1016938
Если у него класс временный - тогда да, но тогда его стопа мертва ещё до рождения. Если у него класс обычный - никакого RVO быть не может.
Хотел нас потраллить?
>>1017204
Что ты пишешь, блядь? Всё, что ты можешь найти в языуе без подключения хеадеров - это интегральные типы (поправьте меня, если неправ), какие ещё объекты? Ссылка и указатель - один хуй, только одно надо разыменовать и можно переуказывать на другую переменную, а другое - не надо, и пересослать нельзя.
(про конст не говорим)
>>1017211
Важные отличия есть, но на суть не влияют.
>>1017388
void - это char , который можно приводить ко всему без предупреждений о типизации. char - это тип ячейки памяти, может быть больше 8 бит, и вовсе не "буква".
>>1017665
OpenMP нагугли, почти во всех современных компиляторах поддерживается.
>>1017773
С изучения примеров из дистрибутива Qt и тщательного чтения справки в Qt Creator.
>>1017767
Ты можешь писать на C++ без использования массивов на стеке и вообще почти всего из С. Но так никто не делает, поэтому читать чужой код будет трудно. Твой основной инструмент - документация, блядь - cppreference и стандарт.
>>1018287
В алтависту! Быстро, решительно!
>>1018292
Алтавистуй C++ ABI и про еблю с либами и extern "C".
>>1018309
- итератор (указатель) на константу
- неизменяемый итератор на константу (но на возможность арифметических операций с ним не влияет)
>>1018546
Да, всё будет. auto именно это и означает - вывод типа из инициализатора (должен быть вместе с объявлением).
#131 #1018581
>>1018564

>Алтавистуй


Аж вспомнил 3.11 для рабочих групп и нэтскейп наш рулевой
#132 #1018585
>>1018564

>Возвращай ссылку, но только ты можешь себе в ногу выстрелить, если класс сдохнет. CopyOnWrite в плюсах запрещён.



http://ideone.com/Ib0VPy

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


>Хотел нас потраллить?



http://ideone.com/cgfaTq
1018611
#133 #1018587
>>1016941
Возвращать референс на локальный объект -- это undefined behavior, т.к. локальный объект, лежащий на стеке, после выхода из функции потенциально будет уничтожен.
1018611
#134 #1018611
>>1018585
Перечитал ориджинал вопрос и всё понял. Статик не заметил, смысл вопроса во время чтения исказил.
>>1018587
Ты тоже невнимательно читал. Статичечкий метод, возвращается класс, а не buffer.
>>1018585 >>1018585 >>1018585 >>1018585
#135 #1018618
Работаю С# веб макакой, знаком с С. Стоит ли учить С++? в моей стране особо вакансий нет, но все же хочется кресты знать хоть чуть чуть.

Может свалю потом за бугор и где то смогу стать крестомакакой? я хз. Очень хочется кресты, прям сильнее пиздятинки хочетсо!
10186211018639
#136 #1018621
>>1018618
Если писать самому, то можно писать без легаси-говна. Если в чужом коде рыться, то лучше не надо. Да ты и без легаси стопу изуродуешь, пока не привыкнешь.
1018631
#137 #1018631
>>1018621

Хочу писать для себя на C++ 11/выше с использованием всех красивых фичей которые упрощают жизнь. Без легаси говна.

Хочу вкатиться в гейдев пока что для себя пошаманить с OpenGL/Direct3D. + я тупой в математике и собираюсь немного подтянуть знания, парралельно с гейдевом было бы прекрасно.
1018636
#138 #1018636
>>1018631
Ну и вперёд тогда. В шапке есть инфа.
1018637
#139 #1018637
>>1018636

Ебучая РАБота только мешает со временем. Придется зубрить теорию и практиковаться по выходным. Ну может еще после РАБоты покодить, но у меня не часто силы остаются даже для того чтоб писать на C#/C свои проекты.
#140 #1018639
>>1018618
Вообще особого смысла нет, C# вполне себе альтернатива крестам, области применения с учетом CX пересекаются под виндой чуть более чем полностью. А так тут где-то по соседству есть тема с конфой для вкатывающихся в разные языки с circle jerking'ом и прочими ништяками.
#141 #1018668
http://www.cplusplus.com/reference/complex/complex/real/
Я чего-то не понимаю или те, кто писал std::complex - ебаны? Зачем писать геттер и сеттер, если можно просто сделать поля, как у std::pair? Нахуя всё усложнять?
1018695
#142 #1018695
>>1018668
Хотели сделать однородным использование complex, наверное. Абс, например, может быть только методом.
Там нет сеттера - когда ты хочешь присвоить новое значение, ты пишешь
complex huy;
huy={1,2}; //initializer_list
или
huy={huy.real(),2};
1018724
#143 #1018724
>>1018695

>Абс, например, может быть только методом.


Ну это естественно, если он не хранится, а считается.
Сеттер есть, можно написать:
huy.real(228);
1018731
#144 #1018731
>>1018724
А, теперь вижу. Но ты на мелочи жалуешься. Попробуй лучше функцию, которая работает на трёх значениях аргумента: >>1005226 .
1018735
#145 #1018735
>>1018731
Да, но:
1) Это стандартная библиотека, там каждая мелочь должна быть продумана.
2) Так надо же специально всё усложнить, помимо того же поля написать четыре бесполезные функции.
3) Мне интересно, может в этом глубочайший смысл какой-то, я-то хуй простой и не понимаю чего-то, что умные дядьки придумали.
sage #146 #1018880
>>1018564

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


В правильном исполнении эксепшены не добавляют никакого оверхеда в нормальный control flow. Т.е. являются с этой точки зрения zero cost. Non-zero cost начинается только если эксепшен бросают.

> Что ты пишешь, блядь? Всё, что ты можешь найти в языуе без подключения хеадеров - это интегральные типы (поправьте меня, если неправ), какие ещё объекты?


Что ты пишешь, блядь?
Сразу заметно не открывавшего стандарт ни разу. Поди посмотри определение объекта в C++. К слову, в стандарте C тоже употребляют это слово — объект. И определяют оба стандарта этот термин одинаково. Так что он всё написал корректно.

> Ссылка и указатель - один хуй


Нет.

> Важные отличия есть, но на суть не влияют.


> суть


Гуманитарием несёт за версту.
Ссылки — не синтаксический сахар, т.к., как я уже писал, выразить все свойства ссылок через указатели невозможно.

> void - это char , который можно приводить ко всему без предупреждений о типизации


Нет, нельзя. Это другие указатели можно неявно приводить к указателям на char или void, но не наоборот.

> char - это тип ячейки памяти, может быть больше 8 бит, и вовсе не "буква".


Это верно, массив из char и unsigned char использую для определения что такое "представление объекта в памяти", но всё-таки одно из главных назначений char — хранить символ из базового набора символов (что это такое — тоже определено стандартом).

> Твой основной инструмент - документация, блядь - cppreference и стандарт.


Не очень похоже, что ты это применяешь к себе.
1018889
#147 #1018889
>>1018880

>В правильном исполнении эксепшены не добавляют никакого оверхеда в нормальный control flow. Т.е. являются с этой точки зрения zero cost. Non-zero cost начинается только если эксепшен бросают.


Не все так умеют. Некоторые до сих пор в MSVS компилят, а там легаси на легаси.

>Поди посмотри определение объекта в C++.


В следующий раз полезу - гляну. Спасибо.

>Не очень похоже, что ты это применяешь к себе.


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

Мир и любовь к твоему очагу.
10188901018980
sage #148 #1018890
>>1018889

>Если ты не хочешь, чтобы я что-то писал, то пиши раньше меня, делов-то.


Я и написал раньше тебя: >>1017207
#149 #1018980
>>1018889

>Некоторые до сих пор в MSVS компилят


А что плохого в MSVC?
#150 #1019057
>>1018980
Компилятор говно - ИДЕ божественна.
1019122
#151 #1019092
Хочу пойти собеседоваться.
В требованиях к вакансии указано:
)работа с сетью(http)
)знание unix систем на уровне пользователя
На линуксе сижу года полтора, но никаких знаний особо не имею.
Что можно почитать по этим двум пунктам? Чего от меня ждут?
#152 #1019108
>>1018980
Конкретно в этом случае - SJLJ-эксепшены (инбифо кланг).
10191221019684
#153 #1019122
>>1019057

>Компилятор говно


Ну так я и спрашивал про компилятор.
Что конкретно в нем говно?
>>1019108

> SJLJ-эксепшены (инбифо кланг)


Почему это плохо?
1019179
#154 #1019124
Кстати, когда там модули в крестах появятся?
В Visual Studio 2017 уже есть експериментальная возможность использования модулей.
#155 #1019179
>>1019122
Оптимизирует хуево, не умеет в С++17. Шланг и гцц умеют.
#156 #1019212
>>1019179
Жаль, что у шланга и гцц нет ни нормальных ide, ни нормальных портов на винду.
#157 #1019216
>>1019212
Шланг на винде есть, да и MinGW от Стефана Т. Лававея норм. Другое дело да, что IDE кроме студии нет вообще, кроме красноглазой параши и джетбрейнсового дерьма.
#158 #1019220
>>1019179
>>1019212
Ребята, кто вам мешает залезть в исходники и подкрутить их на свой вкус? Или вы тут хеллоуворлды пишете?
#159 #1019224
>>1019216

>Шланг на винде есть


А у него есть собственная стандартная библиотека, как у gcc и msvc? Насколько я знаю, приходится использовать его вместе с gcc, а я этого делать не хочу.
Притом его не поддерживает даже говно от джетбрейнсов. Если бы поддерживало, и у него была своя стандартная библиотека, то радостно бы перекатился.
>>1019216

>MinGW от Стефана Т. Лававея


Можно поподробнее?
1019226
#160 #1019226
>>1019220
в исходники компилятора студии залезть?
Ты таблетки принял?

>>1019224
https://nuwen.net/mingw.html
10192411019263
#161 #1019237
>>1019220

>залезть в исходники и подкрутить их на свой вкус?


>имплаинг, что в этом треде кто-то может прочитать и подправить исходники компилятора

#162 #1019241
>>1019226

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


Ну а почему бы нет?
Я думаю, каждый программист должен обладать навыками реверс-инжниринга.
1019424
#163 #1019263
>>1019226
Дружок, исходники компилятора не этого я сам смотрел и разбирался в них. Если ты даже на такое не способен, то может тебе лучше заняться чем то другим?
10192971019363
#164 #1019297
>>1019263
Я крестами уже 5 лет деньги зарабатываю, а ты мне чем-то другим заняться предлагаешь? How about no?
#165 #1019363
>>1019212
Шланг завезли в студию. Сам не пробовал.
>>1019216
Qt Creator потихоньку избавляется от багов.
>>1019263
Скинь сурсы от MSVC в личку, я покопаюсь.
1019391
#166 #1019385
Плюсаны, я нюфаг в C++, есть один проект: https://github.com/coolwanglu/pdf2htmlEX
Как сделать его компиляться в vs под виндовс?
10193961019424
#167 #1019391
>>1019363

>Qt Creator потихоньку избавляется от багов.


Да, только он требует тот же самый msvc или mingw
1019460
#168 #1019396
#169 #1019424
>>1019212
Нахуя компилятору своя иде, поехавший?>>1019220
Исходники чего? Закрытой студии?
>>1019385
В вс затрахаешься с разными версиями компилятора и кривыми xml-проектами. Лучше наверни на систему mingw со стандартными тузами вроде make и баша и cmake . && make
>>1019241
Что за поехавшие в треде? Уебок стих не дал написать и перекотил — набежали шизофреники, это кара божья, не иначе.
#170 #1019431
>>1019424

>Нахуя компилятору своя иде, поехавший?


Я имел в виду поддержку компилятора.
Тот же gcc поддерживает много ide, а по факту все они - говно, кроме clion
10194591019460
#171 #1019433
>>1019424

>Что за поехавшие в треде? Уебок стих не дал написать и перекотил — набежали шизофреники, это кара божья, не иначе.


Как ты будешь восстанавливать исходники, если их кто-то проебал, а бинарник проебать не смогли?
Будешь с нуля писать?
Тут-то и пригодятся навыки реверсинга, тупой овощ.
1019459
#172 #1019459
>>1019433
Не, животное, когда ты занимаешься программированием, а не ежедневной деградацией в отладчике и дрочевом на свои кряки которые ты крякаешь и потолок твоего погромминга настрочить кейген на 2/3 состоящий из выдранного куска асма — есть плюс минус понимание как все работает и легче просто написать с нуля.
>>1019431
Сука ну ни траль так толста плез я щас вытику от тваиго жыра
1019500
#173 #1019460
>>1019391
MinGW w64 - вполне норамальный порт ГЦЦ на винду, если он используется в коммерческом продукте и через него компилится куча софта, включая Сигвин. То, что Креатору не принципиален компилятор - это плюс, а не минус. В редистрибьютабле МНИГВ ГЦЦ есть, тебя это волнует?
>>1019424

>Нахуя компилятору своя иде, поехавший


ДЛЯ СБОРКИ ПРОЕКТОР БЕЗ МЕЙКФАЙЛОВ, например.
>>1019431
Говно вообще или для тебя? Твои потребности меня не интересуют.
10194881019500
#174 #1019485
Есть ли пхпшнику профит от изучения C++?
Я имею в виду, есть ли проекты, требующие навыков написания кода на обоих этих языках. И насколько это экзотика?
10194881019490
#175 #1019488
>>1019460

>ДЛЯ СБОРКИ ПРОЕКТОР БЕЗ МЕЙКФАЙЛОВ, например.


И много ты таких IDE знаешь, поехавший?
>>1019485
Экзотика уровня фейсбука, не парься и пиши на пхп.
1019613
#176 #1019490
>>1019485
нет. Учи лучше Go или Яву
#177 #1019500
>>1019459
>>1019460
Ну давайте, расскажите мне, какой хороший codeblocks или dev-c++. Можете еще сказать про CodeLite, там даже поддержка clang есть.
1019613
17 Кб, 627x421
#178 #1019566
Сап, крестач. Что за хуйня - почему код в ассемблерной вставке работает, а в цикле while вываливается с исключением - нет прав на чтение (типа лох расчехляй VirtualAlloc).
#179 #1019574
>>1019566
Ах да, inb4 используй (DWORD)GetModuleHandleA(NULL) - нет, мне нужно именно вручную находить image_base, не спрашивайте почему.
#180 #1019576
>>1019566

Тащемта у меня почему то вываливается аналогично но даже с VirtualAlloc.

Я не ебу хули оно хочет

https://pastebin.com/A18M3LAy
1019580
#181 #1019578
>>1019566

>deltaoffset


Пацаны, у нас тут хакр!
#182 #1019580
>>1019576
Блять, я наебал, VirtualProtect, не Alloc
Вываливается, потому что ты даешь доступ не на все страницы памяти. Там просто пока до 0x5a4d дойдет дело, ты через кучу страниц пройдёшь. Но я не хочу в цикле постоянно VirtualProtect дважды вызывать для каждой итерации.
Меня вот интересует, что за хуйня - на ассемблерных вставках работает, а на крестах - не
#183 #1019594
Как бесят ебаные гумусы, неспособные четко и последовательно излагать мысли, выделяя главное. Особенно когда гумус еще и хороший специалист и придумывает ебанутые решения, которые сам не может объяснить.
#184 #1019613
>>1019488

>И много ты таких IDE знаешь, поехавший?


Почти каждая из тех, которые я пробовал: у Креатора, у МСВС, у Коделите - у всех свои проекты, и мейкфайлов ты не касаешься. Иди на хуй.
>>1019500
Ты первый тут про Коделите пёрднул.
1019624
#185 #1019624
>>1019613

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


Какой же ты тупорылый.
При чём здесь компиляторы вообще? Иди таблеток выпей.
1019647
#186 #1019647
>>1019624

>При чём здесь компиляторы вообще?


Ты чо несешь, дебич?
Он тебе про IDE говорит, а ты ему про компиляторы.
1019729
#187 #1019679
Связка QtCreator и Cmake работают на любой ОС и с любым компилятором, больше здесь нечего обсуждать.
1019691
sage #188 #1019684
>>1018980

>А что плохого в MSVC?


В 32-битном ABI при входе/выходе из функции постоянно требуется выполнять код, относящийся к поддержке исключений. Т.е. даже если исключений не бросалось, их поддержка вносит постоянный оверхед.
В 64-битном ABI, похоже, они стали zero cost. (Или просто оптимизатор поработал)
>>1019108

>SJLJ-эксепшены


Там не SJLJ, но тоже не zero cost.
>>1019179

>Оптимизирует хуево


2017-й уже не так хуёво. Но вообще да, у его оптимизатора есть некоторый потолок, связанный с тем, что компилятор ничего не знает о strict aliasing.
>>1019179

>не умеет в С++17


Как я демонстрировал в прошлом треде, не умеет даже в C++98.
>>1019216

>IDE кроме студии нет вообще


Фанатик незаметен.
#189 #1019691
>>1019679
даже с mingw-w64?
10196941019696
#190 #1019694
>>1019691
В Cmake можешь указать любую залупу, а если что не работает то найти в интернете модуль для этого.
#191 #1019696
>>1019691
С mingw-w64 работает и сам креатор без всего (юзает мейкфайлы), и qbs, и cmake, и ещё что-то.
#192 #1019729
>>1019647
Напоминаю сверхразумам
>>1019212

>Жаль, что у шланга и гцц нет ни нормальных ide, ни нормальных портов на винду.


>>1019424

>Нахуя компилятору своя иде, поехавший?


с чего все началось:
10197591019789
sage #193 #1019759
>>1019729
Напоминаю сверхразуму, что "Программы и операционные системы обсуждаются в /s/".
1019762
#194 #1019762
>>1019759

>Связанные с софтом вопросы обсуждаются в /s/. Исключение - IDE и прочие инструменты программирования, которые можно обсудить в тредах соответствующих языков.



А не петух ли ты часом?
#195 #1019789
>>1019729
Все нормальные поняли, о чём идёт речь - о том, что в разы упрощает использование компилятора. Зачем нужны IDE - ты, видимо, знаешь. У тебя претензии к выражению "IDE у компилятора"? Не ебёт: учись понимать ошибки собеседника по контексту ( если это вообще ошибка).
1019806
#196 #1019806
>>1019789
тащемто иде нинужно
10198111019824
#197 #1019811
>>1019806
тащемто языки программирования кроме машинного нинужно
1019831
#198 #1019824
>>1019806
поймали хеллоуворлдщика
#199 #1019831
>>1019811
Вернее, кроме инструкций RISC ядра ничего не нужно.
#200 #1019850
собственно как заставить это конпелироваться??
http://ideone.com/e.js/gx9C7k
10198611019975
#201 #1019861
>>1019850
Никак, енум отдельно вынеси выше
1019875
#202 #1019864
анон, как узнать, выхожу я на уровень джуна или нет? ооп изи шарю, списки стеки могу написать без проблем, решил курсач по теории кодирования написав прогу на плюсах. Могу в qt, на нем написал плеер для вк(правда запросы в вк на питоне делал(в фоне скрипт отдельным процессом запускал)), правда сейчас уже прикрыли api, написал себе прогу-напоминалку т.к. провайдер в общаге не удосужился сделать оплату в долг, которая сидит в трее, и при чекает каждый час есть ли на счету деньги на следующие сутки(есть URL по которому можно посмотреть статус счета, ну потом распарсил html и т д), ну конечно текст инфо об аккаутне сделал чтобы на мейн форме можно было посмотреть. Сделал все с потоками, добавил возможность установки в автозагрузку, сделал анимации норм, стилизировал кнопки и т д. Решил поучить python, написал пару скриптов по работе с вк(просто интересовало), всякие махинации с коментами и т д. Раньше как-то читал говнотред на каком-то форуме про джуна с++ и там знатоки говорили что хоть пейнт напиши свой чтобы фигуры можно было чертить и прочее говно, ну это же совсем шляпа, кароч поясните за джуна пж, копать я дальше все равно буду, но стоит ли мне совсем пыхтеть?
10198721019874
#203 #1019872
>>1019864
Всем похуй что ты писал. Самое важное - это КАК ты пройдешь собеседование. Собеседований обычно 2 типа, это либо ты решаешь всякие говнозадачки, как в Яндексе -> иди дрочи leetcode.com и читай Кормена про алгоритмы

Либо это просто тебя будут спрашивать всякие уебанские вопросы ЧЕМ СТРУКТУРА ОТЛИЧАЕТСЯ ОТ КЛАССА или там ЧЕМ РЕФЕРЕНС ОТЛИЧАЕТСЯ ОТ УКАЗАТЕЛЯ.

Я собесил много джунов, обычно если ты прочитал хотя-бы майерса пару книжек - этого уже за глаза для найма.
10198971021183
#204 #1019874
>>1019864
Самое время выучить CSS HTML JS, питон ты знаешь, поэтому вкатывайся в джангу.
А глупые вопросы про с++ не задавай больше
1019891
#205 #1019875
>>1019861
прям совсем? никакие форвард декларейшены не помогут?
1019880
#206 #1019880
>>1019875
https://stackoverflow.com/questions/71416/forward-declaring-an-enum-in-c

Забавно, я не знал, что так можно.
1019885
#207 #1019885
>>1019880
только проблема в том, что у меня тип то темплейтный и когда определяю контекст то у меня используется еще не определенный тип.
#208 #1019887
Что простого написать на С++?
Прочитал про переменные, указатели, ссылки, векторы и строки.
10198901019898
#209 #1019890
>>1019887
Напиши компилятор для своего языка.
#210 #1019891
>>1019874
глупые вопросы потому что они про с++ или потому что я плохо сформулировал? по питону, не совсем уж хочется в веб, язык конечно замечательный, но душа лежит к байтоебству/формоебству(ну если надо я душу перепрошью) просто хотел узнать как обстоят дела в с++
1019901
#211 #1019897
>>1019872
каково соотношение этих собеседований(легких и нормальных)?
1019904
#212 #1019898
>>1019887
попробуй написать сортировочки постепенно усложняя код темплейтами итераторами, фичами 17го стандарта потом берись за веб-сервер
10199071019915
#213 #1019901
>>1019891

>глупые вопросы потому что они про с++ или потому что я плохо сформулировал?


Потому что спрашиваешь о вакансиях на с++

>хотел узнать как обстоят дела в с++


Плохо. Много легаси проектов с С++ 98, работы мало, в основном придется поддерживать древнее говно мамонта, которое сначала писали на чистом си, потом внезапно продолжили писать на си с классами, потом с шаблонами, исключениями, и.т.д
1019925
#214 #1019904
>>1019897
Когда я собесился на джуна несколько раз - меня мучали именно вопросами по крестам. Когда я перестал быть джуном - меня мучали уже задачками. На прошлой неделе в яндекс на крестодебила собесился - дали задачку, в которой крестов вообще не было, на чистом си писал
1019912
#215 #1019907
>>1019898
Про итераторы читал, про темплейты еще нет.
Я толком ничего не знаю, даже до 200 страницы липпмана еще не дошел.
1019937
#216 #1019912
>>1019904
изложить её можешь? буду благодарен
1020001
#217 #1019913
Кстати, что посоветуете прочитать по алгоритмам и структурам данных, а то я не знаю даже что такое связанный список и как реализовать сортировку пузырьком.
1019918
#218 #1019915
>>1019898
веб-сервер? а это разве легко написать? или это тролинг?
1019931
#219 #1019918
>>1019913
Кормена.
1019922
#220 #1019922
>>1019918
Там математики много, я не могу в нее
10199291019975
#221 #1019925
>>1019901
а если у меня есть интернатура luxoft в городе и я могу туда вполне податься, а там около embedded(разработка какого-то софта для автомобилей) стоит и на это положить? жаль конечно что много "говна мамонта" среди вакансий
10199281019975
#222 #1019928
>>1019925
Ложить никогда не стоит, дума, в люксофт все стоит попытаться податься.
#223 #1019929
>>1019922
Она там только в доказательствах всяких, это тебе все равно не надо.
#224 #1019931
>>1019915
ну написать не большая проблема, только вот как и какого качества
Можно юзнуть какую-нибудь либу для работы с http и тогда задачей станет нажать на вики по либе или ручками работать с запросами(что я сам делал)
ну а так если действительно хочется развить знание программирования в довольно большом объемее то это твой чойс(рекомендую std::regex и boost::asio там есть все что тебе понадобится для не самого сложного https сервера)
1019940
#225 #1019937
>>1019907
тогда читай дальше, итераторы без темплейтов странно использовать, хотя действительный опыт работы с темплейтами даст только разработка иерархии типов для какой-нибудь игры или хеширование строк в компалтайме
1019942
#226 #1019940
>>1019931
за одно прочитай beej guide network programming(или как-то так) пойми как писать все на си и посмотри на boost как сделано там
#227 #1019942
>>1019937

>итераторы без темплейтов странно использовать


Ну в векторах, строках и массивах они же используются, хотя в массивах это просто указатели.
#228 #1019945
>>1019942
я конечно точно не скажу но вроде в gnu stl в array vector stack string итераторы и есть указатели
1019949
#229 #1019947
>>1019942
я про то что магию типов c++ необходимо понять как можно раньше
#230 #1019949
>>1019945
Я про обычные сишные массивы.
10199501019975
#231 #1019950
>>1019949
итераторы были призваны обобщать алгоритмы и все stlевские алгоритмы темплейты
#232 #1019975
>>1019850
Да никак. op::type - это поле инстанциированного тимплейта. От того, что он есть во всех инстансах и одинаковый, лучше не становится. Можно было бы написать специализацию, но её можно писать только после объявления основного тимплейта.
>>1019922
Как ты собрался изучать алгоритмы без математики? Пузырёк там псевдокодом, какая математика?
>>1019925
В интернатуре тебя шлюхой не сделают и паспорт не отберут. Попробуешь - расскажешь.
>>1019942

>векторах, строках и массивах


Тимплейт, нетимплейт, тимплейт. Вопросы есть?
>>1019949
В сишных массивах нету итераторов, сишные массивы - это кусок памяти без методов.
sage #233 #1019978
>>1019975

>он есть во всех инстансах и одинаковый


Я, конечно, полагаю, что ты просто не совсем точно сказал то, что хотел, но всё-таки поправлю.

enum, определённый в разных инстансах темплейта — это разные enum-ы. Даже если они определены полностью одинаково.
10200021020005
#234 #1019989
>>1019975
меня сейчас не пускают(cv уже слал), сказали приходи на 4-ом курсе (сейчас 2-ой)
#235 #1019997
>>1019975

>это кусок памяти без методов


Этож какие симантически отличные от указателя методы есть у итераторов?
1020005
#236 #1020001
>>1019912
Она тебе не поможет, иди дрочи leetcode.com и будет все путем
sage #237 #1020002
>>1019978

>Даже если они определены полностью одинаково.


Вообще я странно написал,про разные enum-ы, определённые полностью одинаково.

Раз они в разных инстансах — то они уже определены по-разному.
#238 #1020005
>>1019978
О, кстати, новая идея: "статические" члены, которые можно юзать через идентификатор тимплейта без аргументов. %ололол%%
>>1019997
Семантически. Итератор - это итератор. Указатель - это указатель. Когда говорят "итератор", имеют ввиду не вообще любую вещь, которую пяткой через ухо можно использовать, как итератор. .end() у массива есть, кстати? И не надо мне говорить про array+sizeof(array)
#239 #1020008
>>1020005

>array+sizeof(array)


Точнее array+sizeof(array)/sizeof(ASTERISK array)
#240 #1020093
>>1020005
Извини, но понятие итератора определили без тебя.

$24.2.1
1. Iterators are a generalization of pointers that allow a C++ program to work with different data structures
(containers) in a uniform manner.

2.Since iterators are an abstraction of pointers, their semantics is a generalization of most of the semantics
of pointers in C++. This ensures that every function template that takes iterators works as well with
regular pointers.
1020217
#241 #1020217
>>1020093
Речь была даже не о том, что такое итераторы (нет, это не один лишь указатель), а о том, что в сишных массивах их нет. Указатель - не итератор. У тебя в процитированном написано:

>in a uniform manner


А теперь взгляни на то, как ты получаешь .end() в сишном массиве:

>array+sizeof(array)/sizeof(ASTERISK array)


Итератор - это концепт, спорить не о чем. Учить меня тому, что я знаю много лет, не надо.
1020314
#242 #1020226
>>1020005

>как итератор. .end() у массива есть, кстати? И не надо мне говорить про array+sizeof(array)


std::begin() и std::end()
#243 #1020314
>>1020217
Если не надо, то зачем ты смешиваешь в одну кучу массивы и указатели (до которых массивы деградируют)?

>Указатель - не итератор


Указатель, согласно стандарту, как раз таки итератор.

>Iterators are a generalization of pointers that allow a C++ program to work with different data structures(containers) in a uniform manner.


Кхм. На русский это переводится так: Итераторы это обобщение указателей, позволяющее программам на C++ работать с разными структурами данных ( контейнерами ) в обобщенной манере.
1020469
sage #244 #1020469
>>1020314

>Указатель, согласно стандарту, как раз таки итератор.


Такие утверждения требуют уточнений.

>>1020314

>Кхм. На русский это переводится так: Итераторы это обобщение указателей, позволяющее программам на C++ работать с разными структурами данных ( контейнерами ) в обобщенной манере.


А, вот и уточнение.
Написано "итераторы это обобщение указателей" и ты отсюда сделал вывод, что "указатели это [обобщение] итераторы[ов]"? Кхм. Мда.

Можно сказать, например, что указатели это итераторы в том смысле, что для них задана частичная специализация std::iterator_traits. Тут никаких вопросов.

Насчёт "симантической" разницы. Это всё зависит от того, насколько вольно трактовать "симантику". Всё-таки при применении оператора * к итератору (если он определён как класс, а не просто алиас типа указателя) вызывается метод, а при применении к функции — built-in оператор. "симантически" это разные вещи.
10206491020668
#245 #1020545
Какой профит от изучения С++ на сегодняшний день?
sage #246 #1020546
>>1020545
Никакого.
1020559
#247 #1020559
>>1020546
Тогда куда вкатиться?
В джаву? В C#?
1020568
#248 #1020568
>>1020559
Смотря чего тебе надо
1020585
#249 #1020573
Пролистал липпмана и решил открыть мейерса и нихуя не понял, о чем он пишет. Как понять его писанину? какието lvalue и rvalue ссылки, а вообще не ебу что это за залупа такая
1021234
#250 #1020585
>>1020568
Системное программирование и веб.
1020587
#251 #1020587
>>1020585
В системном никуда без С или ++
1020593
#252 #1020593
>>1020587
Хорошо, тогда что можно написать на крестах, если я совсем ньюфаг?
10205961020598
#253 #1020596
>>1020593
Рогалик
1020601
#254 #1020598
>>1020593
Если совсем нюфаг иди литературу читай.
1020609
#255 #1020601
>>1020596

>Рогалик


Чо это?
1020602
#256 #1020602
>>1020601
Это типа кресты нахуй не нужны.
#257 #1020609
>>1020598
Какую?
10206121020637
#258 #1020612
>>1020609
Страуструпа
1020614
#259 #1020614
>>1020612
Какую именно?
1020617
#260 #1020617
>>1020614
Принципы и практика использования с++
1020643
sage #261 #1020637
>>1020609
Рэй Лишнер. C++. Справочник.

Она, правда, про 98/03-й стандарт, но для начала сойдёт.
#262 #1020643
>>1020617
А липпман/прата?
#263 #1020649
>>1020469

>Это всё зависит от того, насколько вольно трактовать "симантику"


Я тебя понял. Бывает.
25 Кб, 851x249
#264 #1020668
>>1020469

>Такие утверждения требуют уточнений.


А я сам уже глянул в стандарт. Указатель таки итератор.
Ок, буду знать.
Ясен пень, само по себе "итераторы - обощение указателей" не означает то, что указатель - итератор. Но раз написан список требований и указатель удовлтеворяет их - ок, ладно, таки итератор.
#265 #1020758
>>1016662 (OP)
Собираюсь использовать Clion + mingw-w64 на винде, какие подводные?
1020787
#266 #1020787
>>1020758
Clion крайне убог как IDE (сколько еще лет memory view будут прикручивать и по памяти переполняться на проекте на 1000 файлов?), порт gdb крайне убог сам по себе (нет нормально работающих view'ов, нормально не работает ретроспектива). Других подводных нет. Они все надводные.
1020794
#267 #1020794
>>1020787
А какую IDE тогда использовать?
Eclipse CDT? Qt Creator? Visual Studio с MSVC, который не полностью поддерживает даже C++98?
10207951020826
#268 #1020795
>>1020794
Естественно студию.
1020802
#269 #1020802
>>1020795
Ну а что делать с плохой поддержкой стандартов?
Я еще на Си в основном пишу, мне С99 и С11 хотелось бы увидеть.
10208101021245
#270 #1020810
>>1020802
Судя по тому, что ты вообще об этом спрашиваешь - ты сраный ученик подмастерья джуна на пол ставки за борщ. Исходя из этого - перестать забивать голову левой информацией. C99 поддерживается 15й студией, C11 нормально не поддерживается никем (если не считать еблю с флагами под gcc) кроме clang.
1020823
#271 #1020823
>>1020810
C99 поддерживается студией на уровне совместимости с С++, не больше.

>не считать еблю с флагами под gcc


Не понимаю, о какой ебле ты говоришь, но он в gcc нормально поддерживается.
https://gcc.gnu.org/wiki/C11Status
1020839
sage #272 #1020826
>>1020794

>Visual Studio с MSVC, который не полностью поддерживает даже C++98?


Если тебе так важна корректная работа two phase lookup-а в шаблонах, то там, насколько я знаю, есть Clang with Microsoft CodeGen. Т.е. фронтенд от Clang, бекенд от CL.

Сам никогда не пробовал.
#273 #1020839
>>1020823
https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html

Выбирай любую комбинацию gnu11/stdc11 которую тебе cmake/configure высрет и ебись, чего как маленький то?

Особенно доставляют вариации -fpermitted-flt-eval-methods, с багами вроде этого:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69462
или
https://stackoverflow.com/questions/28851350/same-flt-eval-method-different-results-in-gcc-clang
1021140
#274 #1021140
>>1020839

>https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69462


Макроопределение забыли, бывает.

>https://stackoverflow.com/questions/28851350/same-flt-eval-method-different-results-in-gcc-clang


Почему там вообще r1 может быть не равен 1? У 1.0 и 10.0 одинаковая мантисса, а по алгоритму IEEE там сначала получается мантисса=1, а потом уже режется точность из-за нормализации:
http://www.rfwireless-world.com/Tutorials/floating-point-tutorial.html
Это уж в кланге баг тогда.
#275 #1021180
>>1016662 (OP)
Что нужно прочитать и выучить, чтобы стать С++ джуном?
1021183
#276 #1021183
#277 #1021220
>>1016662 (OP)
Из чтения стандарта не понял, как слово inline решает проблему многократного определения. Объясните, почему добавление inline устраняет такие ошибки.
#278 #1021229
>>1020545
Посоны, а был ли когда-то вообще профит от изучения C++?
#279 #1021234
>>1020573
L/R value - это, судя по всему, Левые/Правые значения, то есть те, что стоят слева или справа от знака присваивания, например.
lvalue1 = rvalue1

У них есть свои особенности, но я не шарю.
1021480
#280 #1021242
>>1021220
Прозреваю, что будет объектный файл на хеадер. Стандарт не читал, заскринь выдержки.
#281 #1021245
>>1020802
При чем здесь стандарты? Писать код удобно. Не нравится компилятор? Используй внешний, благо теперь можно делать проекты cmake Это конечно своя головная боль, но другого я не знаю
#282 #1021301
>>1020545
Зарплата
#283 #1021320
>>1020545
Геймдев, больше кресты ни для чего не нужны.
1021327
#284 #1021321
Есть структурка
struct Rate
{
int count;
string str;
};

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

Изначально строки берутся из словаря, который гарантированно будет жив.
Затем вектор из этих структур сортируется так:
auto sortLambda = [](const Rate & a, const Rate & b) -> bool
{
if (a.count != b.count)
return a.count > b.count;
return a.str < b.str;
};

for (auto it = rates.begin(); it != rates.end(); ++it)
sorted.push_back(Rate{ it->second, it->first });
sort(sorted.begin(), sorted.end(), sortLambda);
1021347
#285 #1021327
>>1021320
Отнюдь. На крестах дохуя всего пишется, геймдев это меньшая часть.
Я пишу софт для сетевого оборудования охуительно быстрого. Ядро на С, обвязка на крестах
1021331
#286 #1021331
>>1021327
Для всего остального достаточно обычного C, классы не нужны.
10213401021375
#287 #1021337
>>1021220
Функция с модификатором inline может быть многократна объявлена. При компиляции будет взято первое попавшееся определение.
1021370
#288 #1021340
>>1021331
Ты ебанешься писать огромный проект на чистом си, линуксопердолики не в счет, у них время бесплатное.
#289 #1021341
>>1016662 (OP)
Сначала вкатиться в си, а потом в кресты, или наоборот?
10213471021362
#290 #1021347
>>1021341
Катись нахуй.

>>1021321
Самый оптимальный способ для инициализации такой структуры - добавить конструктор вид

Rate( int count_arg, const string& str_arg ) : count ( count_arg) , str ( str_arg ) {

}

В этом случае строка будет создана только один раз.
#291 #1021360
Объясните, почему decltype(&p) возвращает int ?
#292 #1021362
>>1021341
Начни с си.
Плюсы это си с классами
#293 #1021370
>>1021337

>Функция с модификатором inline может быть многократна объявлена


С чем это связано и как обосновано? Или это "а пусть будет так"?
10214471021477
#294 #1021372
>>1021360
Потому что адрес переменной это DWORD или QWORD, то есть беззнаковое целое.
мимо хакр
10213741021375
#295 #1021374
>>1021372
>>1021360
Нет ты и я обосрались.

decltype(&p) возвращает int##

## - две звездочки
1021376
#296 #1021375
>>1021331
Что ты в ЦПП-треде забыл, болезный?
>>1021360
Зависит от того, какого типа p. Если оператор взятия адреса переопределён, то может возвращать хоть конскую залупу.
>>1021372
Если decltype от адреса возвращает int по той причине, которую ты назвал, то компилятор не может предупредить об использовании числа вместо адреса в компайл-тайме.
#297 #1021376
>>1021374
Телепаты в отпуске, тип p назовёшь наконец?
1021377
#298 #1021377
1021388
#299 #1021385
Так-с, вот наговнокодил я свой шаблонный ребус на вариадик темплейтах и рекурсии этих самых шаблонов, а как посмотреть во что это все говно развернётся кроме как дизасемблером?
1021481
#300 #1021388
>>1021377
Звёздочки не просрались?
1021389
#301 #1021389
#302 #1021391
Ребзя, кто нибудь пробовал оптимизировать проги на асемблере? Например я написал хеллоу врот и хочу чтобы он работл бырее и жрал меньшеговна памяти
#303 #1021392
>>1021391
из 80х капчуешь?
#304 #1021394
Как называть переменную, в которой хранится число для сдвига?
Т.е. uint32_t s = 24; a << s; — как бы вы s назвали?
#305 #1021395
>>1021391
Они уже оптимизированы, т.к оптимизацию проводит компилятор за тебя.
#306 #1021396
>>1021394
оставил бы константой, или назвал чем-то, что отображает от куда ты взял значение сдвига.
1021399
#307 #1021399
Лублу мтпргромировоне:
https://pastebin.com/7fUgNzSd
(сюда не влезло, а жаль, лол хотя судя по
main.cc:29:10: note: (skipping 1015 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
самое интересное не влезло, кек).

>>1021396
Дык у меня из-за этого-то и творческий кризис, ибо я хз чем назвать, я его не откуда и не беру — это просто изначальное значение, от которого отравляется по 8 и из 4/2 знаковой строки составляется её хекс код.
1021404
#308 #1021404
>>1021399

>значение, от которого отравляется по 8 и из 4/2 знаковой строки составляется её хекс код.


Блин, нихуя не понял.
#309 #1021437
>>1021391
gcc -Os
#310 #1021447
>>1021370
Бамп.
1021507
sage #311 #1021477
>>1021220

>Из чтения стандарта не понял, как слово inline решает проблему многократного определения. Объясните, почему добавление inline устраняет такие ошибки.


Потому что стандарт явно разрешил таким определениям нарушать one ODR rule.

>>1021370

>С чем это связано и как обосновано?


А подумать?
1021492
sage #312 #1021480
>>1021234

>L/R value - это, судя по всему, Левые/Правые значения


Самый прикол в том, что r/lvalue относится не к значениям, а к выражениям.
1021602
#313 #1021481
>>1021385
есть средства для этого, в том числе и на шланге, само собой
другое дело что не оч популярны, видимо потому что ньюфаги и так в этом не шарят, а монстрам уже не надо, они и так понимают
та же история, что и с препроцессором в си - во всех компиляторах существует опция позволяющая посмотреть процессированный код (с развернутыми макросами), но люди даже с 10тью годами опыта этим не пользовались..
#314 #1021483
>>1021394
shift_amount
#315 #1021484
>>1021394
shift_amount
#316 #1021492
>>1021477

>А подумать?


Потому что функция определяется встраиваемой и может подставляться целиком по месту вызова? Но ведь это только рекомендация компилятору.
1021495
4 Кб, 340x87
#317 #1021493
>>1021394
Тоже вкачусь с вопросом. Как назвать параметр типа шаблона, который может быть целым числом (для подсказки полюзывателям шаблона)?
1021496
sage #318 #1021495
>>1021492
Если функция встраивается в место вызова, то от неё никаких самостоятельных определений не остаётся.

Темплейты функций пишутся в хедерах и их инстанциирование потенциально приводит к определению функций во многих единицах трансляции. Чтобы не нарушать этим one ODR rule, инстанциированные функции неявно являются inline.

То же распространяется на методы классов, определённые внутри определения класса. Они попадают во все единицы трансляции, подключающие хедер с их определением и поэтому неявно являются inline.
1021497
#319 #1021496
>>1021493
intNumber
#320 #1021497
>>1021495

>Если функция встраивается в место вызова


Или не встраивается.
1021499
sage #321 #1021499
>>1021497
Или не функция.
1021506
#322 #1021506
>>1021499
Так, падажжи, то есть, если у меня будут статичные мемберы заинлайнены, они будут в нескольких экземплярах?
1553 Кб, 480x272
#323 #1021507
>>1021447
Связано с 50-летними технологиями компиляции и сборки программ. При компиляции кода с обычными функциями компилятору не нужен код самих функций - он просто проставляет ссылки и идет дальше. Тоесть при компиляции каждой отдельной единицы трансляции в ней может не содержаться кода некоторых функций - главное чтобы были их декларации (для статического контроля типов). Потом с заменой ссылок на реальные адреса функций (и поиском этих функций) ебется уже линкер. Но при компиляции кода с инлайн функциями компилятору нужен код этих функций потому что этот код напрямую вставляется вместо вызовов функций. Тоесть при компиляции каждой отдельной единицы трансляции нужен код всех инлайн функций которые используются в этой единице. В случае функций которые должны использоваться только в одной единице трансляции проблем нет - код функции помещается в .срр файл и все. Но если ты хочешь использовать инлайн функцию в нескольких единицах трансляции единственный нормальный способ - поместить эту функцию в хедер. Но тут получается проблема что компилятор создаст кучу одинаковых функций (для кадой единицы трансляции в которую включен хедер с инлайн функцией). В случае обычных функций это запрещено. Ну и какбы нет особого смысла код обычных функций помещать в хедер - множественная компиляций одной и тойже функции только замедлит процесс. А для инлайн функций - помещение в хедер это единственный нормальный вариант использовать одну и туже функцию в нескольких единицах трансляции, поэтому он и разрешен. Все возможные отхуяченые по шею ноги - на совести программиста.
#324 #1021602
>>1021480
как rvalue может быть выражением?
1021607
sage #325 #1021607
>>1021602

>как rvalue может быть выражением?


А в чем проблема?
1021610
#326 #1021610
>>1021607
А, я lvalue имел ввиду. Типа как вообще может выражение слева от присвоения быть (a+b=c)? разве что если там указатель вычисляется
sage #327 #1021611
>>1021610
Если operator+ для a и b вернёт lvalue-ссылку, то a+b будет lvalue.
1021614
sage #328 #1021614
>>1021610
>>1021611
Хотя даже ссылка не обязательна. Главное, чтобы оператор= был определён.

Для std::string a, b, с,
a+b=c
вполне скомпилируется.
1021617
sage #329 #1021617
>>1021610
>>1021614
Хотя не то. Мы же говорим про lvalue, а не просто возможность написать a+b=c.

Тогда старый ответ: если a+b это lvalue-ссылка, то выражение будет lvalue.
sage #330 #1021622
>>1021610

> я lvalue имел ввиду. Типа как вообще может выражение слева от присвоения быть


А, ты думаешь, rvalue или lvalue определяется тем, с какой стороны от = стоит выражение? Это не так.
1021850
sage #331 #1021685
>>1021610

>(a+b=c)? разве что если там указатель вычисляется


Если a это указатель, а b это целое число (или наоборот), то a+b=c ты написать не сможешь, разве что *(a+b)=c
хуй с горы #332 #1021838
Читал комменты сверху, скажу - сколько тут сверхразумов, готовых писать свои компиляторы, сравнивают Java с CPP, говорят что компилятор MSVS "говно", студия как IDE параша, QT сосёт в функционале, C++ вымирает... Твоюж мать, вы ебанутые. Яву и кресты сравнивать вообще нельзя. MSVS, если ты пишешь код как макака куча циклов в цикле ещё в цикле - быстрее, а также с ссылками/адресами быстрее рабит => каждому свое. Студия имеет более расширенный функционал перед другими IDE. Также отладчик супер, новая фича - профилирование, которое нигде не найдёшь. QT имеет ряд особенностей. Они кажутся многим настолько полезными, что и переходят на него. Те же слоты и сигналы чего стоят. И, конечно же, он бесплатный. C++ не вымирает, каждый язык имеет свое предназначение. Я до сих пор временами использую паскаль.
#333 #1021849
>>1021838
Ты еще больше бреда от вкатывальщиков читай.
#334 #1021850
>>1021622
Ну, отчасти это так, потому что именованный rvalue ведет себя как lvalue. Более правильно было бы сказать - rvalue это неименованная величина получаемая из результата выражения или статик каста.
10221491022227
#335 #1021853
>>1016662 (OP)
Плюсоны, может напишем свою ось?
1024053
16 Кб, 883x284
52 Кб, 1182x624
#336 #1021854
Если в push_back передавать объект с unique_ptr, поинтер нормально скопируется, или без std::move никак?
10218551022152
#337 #1021855
>>1021854
unique лучше всегда передавать как rvalue
1021864
#338 #1021862
>>1021838
Студия действительно говно, я там только цветовую тему спиздил.
Qt как IDE шикрен, из библиотек там только интерфейс писать удобно. Ну и разный функционал там впечатляет, но как ядро тугой.

К слову, зачем c++ и джава ребята используют отладчик? Гораздо проще использовать дебагстринги, логирование или те же месседжбоксы.
Это ж ебанутся можно подрубать дебагер на мультипочное приложение с 20+ классами. Тем более 90% его функционала нет смысла использовать для дебага высокоуровневых приложений.
10219441022155
#339 #1021864
>>1021855
Вопрос в том, можно ли это делать без этого, и без emplace_back. Нет, да?
1021867
#340 #1021867
>>1021864
Ну, теоретически это возможно в vc если ты не используешь /Ze ( https://msdn.microsoft.com/en-us/library/0k0w269d.aspx ). Но не надо этого делать. Это нарушает концепцию unique_ptr.
10 Кб, 922x266
#341 #1021891
Анон, сорри за такой вопрос, но у меня уже крыша едет.
Вот есть std::tr1::regex
https://msdn.microsoft.com/en-us/library/mt771538.aspx

У его функций есть по несколько версий. Например вот пара regex_search:

bool regex_search(const Elem ptr, match_results<const Elem, Alloc>& match, const basic_regex<Elem, RXtraits, Alloc2>& re, match_flag_type flags = match_default);
bool regex_search(const Elem* ptr, const basic_regex<Elem, RXtraits, Alloc2>& re, match_flag_type flags = match_default);

В норме, версия функции выбирается в зависимости от используемых параметров и без танцев, что и показано в MSDN примерах там же, например

std::cout << "search(f, l, \"abc\") == " << std::boolalpha << regex_search(first, last, mr, rx) << std::endl;
std::cout << "search(\"a\", \"abc\") == " << std::boolalpha << regex_search("a", rx) << std::endl;

Тогда почему же у меня, в VS 2017 работает только версия с двумя параметрами, пикрилейтед? Как запустить и другие версии? Я хочу вернуть совпадение.

std::tr1::regex_match(strStd, pattern, res); - не работает

std::tr1::regex_match(strStd, pattern); - работает
#342 #1021894
>>1021891
Всё, сорри, проебался в глаза.
#343 #1021895
>>1021891
Не по теме проблемы: не используй tr1, 2007 не вернешь. Используй просто std::regex_match.
1021897
#344 #1021897
>>1021895
Так сейчас и сделаю.
#345 #1021924
Переходите на го, пацаны, хватить сидеть на древних технологиях
10219251021930
#346 #1021925
>>1021924
Нахуйидь, а?
1021926
#347 #1021926
>>1021925
А может все-таки ты?
1021928
#348 #1021928
>>1021926

>go


>может все-таки ты


Отважен, щегол!
#349 #1021930
>>1021924
Зачем нам говно есть?
Иди своих хипстеров в раст м жс тредах вербуй.
1021932
#350 #1021932
>>1021930
Почему он говно?
1021935
#351 #1021935
>>1021932
Потому что это си с жирным рантаймом. В 2017.
1021941
#352 #1021941
>>1021935
В си хотя бы макросы есть и куча либ для всего.
1022038
#353 #1021944
>>1021862

>К слову, зачем c++ и джава ребята используют отладчик?


Чтобы смотреть память, когда прога упала.
#354 #1022000
Аноны, я так понимаю, что эпохе десктоп-приложений пришел конец?
Или еще есть шанс вкатиться в десктоп разработку?
1022021
#355 #1022021
>>1022000
да
нет
1022022
#356 #1022022
>>1022021
Очень печально, а что же стало с десктопом?
10220391022040
#357 #1022025
>>1021891
нахуй вы регулярки на крестах пользуйте?
зачастую можно sprintf обойтись или его аналогами
ну или пишется state machine, способов как ее делать штук пять можно набрать
просто учитесь их писать и все
#358 #1022028
>>1022025

>sprintf


>C++


Прости, я не хочу жрать говно из мира чистого Си
1022042
#359 #1022038
>>1021941
В си кроме кодогенерации без стороннего говна (кек) за спартанство платят перформансом и низким потреблением памяти, в говне тебе не платят ничем, кроме того что этому говну даже человека с синдромом обучить можно.
#360 #1022039
>>1022022
Он стал тырпрайзным. Ну, еще игры остались и всякие мессенджеры + тулы. Но в % тулами пользуется малое число юзеров. Хотя на икру с ферарями хватает.
#361 #1022040
>>1022022
Да всё в веб-технологии перекатывается, даже ебаные десктопные приложения. Тот же православный, казалось бы, Qt — и тот активно развивает свой QML ака недоумию-жс-для-разметки-и-просто-жс-для-логики.
#362 #1022042
>>1022028

>хочешь сделать хуяк-хуяк


>предлагают привязывать ногу к стулу sprintf — чтобы отстреливать удобнее было


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


/0
1022103
#363 #1022043
>>1022025
Ну вот тебе эрэфсишная регулярка для почтовых адресов. http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html
Можешь примерно так на глаз конечный автомат накидать?
10220451022103
#364 #1022045
>>1022043
Вот поэтому перл и сдох, лол. Для почтовых адресов фсм вышла бы куда короче — что ещё может быть нужно, кроме как разделить адрес на до и после @ и попутно проверить все ли там аски символы?
если чо другой анон
1022046
#365 #1022046
>>1022045
Вообще имплементации RFC822/RFC5322/5321 проприоритарные как правило и для иллюстрации я их притащить не мог, ту что притащил - на порядок короче виденного на практике.

>Для почтовых адресов фсм вышла бы куда короче


Ну давай начнем с name@"supercorp@fuckers".com
#366 #1022056
>>1022025

>нахуй вы регулярки на крестах пользуйте?


Ну а как еще мне просто достать из строки подстроку соответствующую шаблону?
Если есть решени проще чем

std::string inputStr;
std::match_results<std::string::const_iterator> result;

std::regex regexp("([0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,4})");
std::regex_search(inputStr, result, regexp);

То я буду рад его увидеть.
1022100
#367 #1022100
>>1022056
алгоритмы на строках учи
учись делать машины состояний
я же написал
1022104
#368 #1022103
>>1022042
>>1022043
блядь, идите нахуй дебилы
кочешь юзать регулярки - юзай
и иди нахуй
#369 #1022104
>>1022100
Они будут более наглядны и лаконичны для решения задачи поиска даты в строке? Покажи пример, пожалуйста.
1022137
#370 #1022137
>>1022104
Сам факт того, что ты сделал регулярку, подразумевает бессмысленность построения тут конечного автомата.
Может тот анон просто сказал тебе что-то вроде "git gud" или просто выебнулся, но по строкам там точно меньше не выйдет.
1022142
#371 #1022142
>>1022137
Тот анон - ебанувшийся байтоеб периодически посещающий этот тред. Не обращай внимания.
sage #372 #1022144
>>1021838
Слишком толсто.
sage #373 #1022149
>>1021850

>Ну, отчасти это так, потому что именованный rvalue ведет себя как lvalue.


Про что несёт? rvalue или lvalue это свойство [под]выражения, что такое "именованный rvalue"?

> Более правильно было бы сказать - rvalue это неименованная величина получаемая из результата выражения или статик каста.


Более правильно было бы привести ссылку и/или цитату на стандарт или cppreference.
1022193
sage #374 #1022152
>>1021854

>Если в push_back передавать объект с unique_ptr, поинтер нормально скопируется, или без std::move никак?


А самому проверить?
sage #375 #1022155
>>1021862

>К слову, зачем c++ и джава ребята используют отладчик?


Разбирать, как сторонний код работает.

А ловить утечки или там data race в дебаггере и правда ненужно.
#376 #1022193
>>1022149

>Про что несет?


>rvalue это свойство


Как-то даже грустно стало. А ведь когда 11 стандарт вводили об этом знал каждый. Похоже я слишком старый, скоро будут уже 2000++ года рождения закатываться. Стандарт, раздел 5, Expressions:

[ Note: An expression is an xvalue if it is:
(7.1) — the result of calling a function, whether implicitly or explicitly, whose return type is an rvalue reference
to object type,
(7.2) — a cast to an rvalue reference to object type,
(7.3) — a class member access expression designating a non-static data member of non-reference type in which
the object expression is an xvalue, or
(7.4) — a .* pointer-to-member expression in which the first operand is an xvalue and the second operand is
a pointer to data member.
In general, the effect of this rule is that named rvalue references are treated as lvalues and unnamed rvalue
references to objects are treated as xvalues; rvalue references to functions are treated as lvalues whether
named or not. — end note ]
struct A {
int m;
};
A&& operator+(A, A);
A&& f();
A a;
A&& ar = static_cast<A&&>(a);
The expressions f(), f().m, static_cast<A&&>(a), and a + a are xvalues. The expression ar is an lvalue.
— end example ]
#376 #1022193
>>1022149

>Про что несет?


>rvalue это свойство


Как-то даже грустно стало. А ведь когда 11 стандарт вводили об этом знал каждый. Похоже я слишком старый, скоро будут уже 2000++ года рождения закатываться. Стандарт, раздел 5, Expressions:

[ Note: An expression is an xvalue if it is:
(7.1) — the result of calling a function, whether implicitly or explicitly, whose return type is an rvalue reference
to object type,
(7.2) — a cast to an rvalue reference to object type,
(7.3) — a class member access expression designating a non-static data member of non-reference type in which
the object expression is an xvalue, or
(7.4) — a .* pointer-to-member expression in which the first operand is an xvalue and the second operand is
a pointer to data member.
In general, the effect of this rule is that named rvalue references are treated as lvalues and unnamed rvalue
references to objects are treated as xvalues; rvalue references to functions are treated as lvalues whether
named or not. — end note ]
struct A {
int m;
};
A&& operator+(A, A);
A&& f();
A a;
A&& ar = static_cast<A&&>(a);
The expressions f(), f().m, static_cast<A&&>(a), and a + a are xvalues. The expression ar is an lvalue.
— end example ]
sage #377 #1022196
>>1022193

>Как-то даже грустно стало.


Ну это оттого, что ты нифига не знаешь.

> А ведь когда 11 стандарт вводили об этом знал каждый.


А я до сих пор знаю, в отличие от тебя.

> Стандарт, раздел 5, Expressions:


Стандарт, раздел 6.10 [basic.lval] http://eel.is/c++draft/basic.lval#1.note-1
[ Note: Historically, lvalues and rvalues were so-called because they could appear on the left- and right-hand side of an assignment (although this is no longer generally true); glvalues are “generalized” lvalues, prvalues are “pure” rvalues, and xvalues are “eXpiring” lvalues. Despite their names, these terms classify expressions, not values. — end note ]
1022199
#378 #1022199
>>1022196

> я до сих пор знаю


> что такое "именованный rvalue"


Ловкая попытка съехать, но нет.

>Самый прикол в том, что r/lvalue относится не к значениям, а к выражениям.


>Despite their names, these terms classify expressions, not values


>6. Statements


>5. Expressions


Так вроде ты и просил объяснить тебе про выражения. Не очень понимаю твои претензии.
1022201
sage #379 #1022201
>>1022199
Куда съехать? Зачем ты рандомно цитируешь названия разделов стандарта? Ты можешь ясно выражаться?

Я намекал, что "именованный rvalue" — это бессмысленное словоупотребление.
1022203
#380 #1022203
>>1022201

>>Куда съехать


Хто здесь?

>> "именованный rvalue" — это бессмысленное словоупотребление


Да нет, это именно что rvalue который трактуется как lvalue. Вполне себе жизненное особенно в шаблонах.
1022204
sage #381 #1022204
>>1022203
Покажи, что ты понимаешь под "именованный rvalue"
1022206
#382 #1022206
>>1022204
>>1022193
Прочитай еще раз вот эту цитату из стандарта внимательно.
1022208
sage #383 #1022208
>>1022206

> [ Note: An expression is an xvalue if...



Т.е., как я и говорил, lvalue/prvalue/xvalue (и их надклассы типа glvalue и rvalue) — это категория выражения.

Именованными бывают переменные, функции и т.д.

Ты предъявишь то, что ты называешь "именованный rvalue" или можно считать, что ты слился?
1022215
51 Кб, 720x544
#384 #1022215
>>1022208

>что ты называешь "именованный rvalue"


>In general, the effect of this rule is that named rvalue references are treated as lvalues and unnamed rvalue


references to objects are treated as xvalues; rvalue references to functions are treated as lvalues whether
named or not

Может перевод слова "named" тебе не понятен?

>Именованными бывают переменные, функции и т.д.


Или все же понятен?

Как ты кстати назовешь:
int&& a ; ?

>что ты слился?


Понимаю что школотронство рвется наружу, но ты выбрал не тот тред чтобы его выпускать, его читают: ты, я, два с половиной залетных которые меняются каждый день.
10222181024598
sage #385 #1022218
>>1022215
Так и думал, что ты один из тех даунов, которые не отличают "rvalue" от "rvalue reference".
Или, более общó, value category от типа.

http://en.cppreference.com/w/cpp/language/value_category
Each C++ expression (an operator with its operands, a literal, a variable name, etc.) is characterized by two independent properties: a type and a value category. (курсив не мой)
1022227
#386 #1022227
>>1022218
>>1021850
Вот то что я пытался донести в оригинале, согласно твоей собственной ссылке:
Even if the variable's type is rvalue reference, the expression consisting of its name is an lvalue expression;

Ну, а понятие "named rvalue" ты можешь в стандарте почерпнуть оно много где используется.

>которые не отличают "rvalue" от "rvalue reference


Как ты кстати сделаешь именованный prvalue?
1022235
sage #387 #1022235
>>1022227
Ты, главное, не расстраивайся. Многие ньюфаги не отличают rvalue от rvalue reference. И задаются вопросами типа "я передал аргумент в функцию по rvalue-ссылке. Почему он не перемещается? Ведь для rvalue должен вызываться конструктор перемещения". Потом многие понимаю, почему, когда начинают отличать типы от категорий значений (type и value category).

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

> Вот то что я пытался донести в оригинале


А я пытался донести, что словосочетание "именованный rvalue" лишено смысла.

> Как ты кстати сделаешь именованный prvalue?


Так же, как rvalue: никак.
10222421023874
#388 #1022242
>>1022235

>ньюфаги


Тебе все еще бомбит с моей толстоты? >>1022193
Ну извини :^)

Да, я хотел шлепнуть в продолжении шлангом по лбу с вопросом, а сюда что вставишь forward или move? Но я смотрю это уже сделал кто-то до меня.

>Так же, как rvalue: никак.


Двоечка молодой человек, идем и читаем собственную ссылку, там все есть http://en.cppreference.com/w/cpp/language/value_category
10222451022268
sage #389 #1022245
>>1022242

>Тебе все еще бомбит с моей толстоты?


Да, известный трюк. Облажался — объяви, что это ты просто толстил.

В общем, слив засчитан.
1022246
#390 #1022246
>>1022245

>известный трюк


Сказал человек, отвечающий на треть поста :^)
1022253
#391 #1022251
Вот поэтому я в русскоязычном интернете почти и не сижу. Очень токсичная атмосфера. Встретятся два дебила, и пытаются поднять свою самооценку за счет оппонента. Потом подключается остальная группа и начинается срач.
#392 #1022253
>>1022246
Да, для упрощения понимания небольшой postreference:

>Как-то даже грустно стало. А ведь когда 11 ?>стандарт вводили об этом знал каждый. >Похоже я слишком старый, скоро будут уже >2000++ года рождения закатываться.


Толстота это вот это /\ /\ /\ /\

>>1022251
Да ладно тебе, обычно таких буйных не попадается.
1022280
#393 #1022257
>>1022251
И правда, лучше б поделились толковым текстом для ньюфагов про все эти lvalue, rvalue и прочее
мимовечныйньюфаг
10222591022262
#394 #1022259
>>1022257
сено - lvalue, солома - rvalue
#395 #1022262
>>1022257
Так вы задавайте вопросы, у меня этот тред весит прикрепленным, могу отвечать иногда :^)

Вообще у яндекса были раньше неплохие видео:
https://www.youtube.com/watch?v=oQDOqB1asNw
sage #396 #1022268
>>1022242

>>ньюфаги


>Тебе все еще бомбит с моей толстоты?


С чего ты взял, что употребление слова "ньюфаги" означает, что мне "бомбит"? Я констатировал факт, что ньюфаги часто задают такие вопросы. Потому что правда задают.

Или тебе показалось, что я тебя обзываю ньюфагом?

>>1022242

>Двоечка молодой человек


А на каких IT-ресурсах ты ещё сидишь?
1022269
#397 #1022269
>>1022268
А вот и первый пост 0й ценности. Как и ожидалось после указания на очевидные ошибки.
1022270
sage #398 #1022270
>>1022269
Ой-вей. Ты-таки решил идти до конца и перебрать все модели поведения лузера.

Ну да, есть у тебя в голове каша из понятий со сходными названиями, и тебе на это указали. Это настолько уязвило твоё самолюбие?
sage #399 #1022280
>>1022251
>>1022253
Семён незаметен.
#400 #1022300
Итак.
Почему int a, a не int a? У переменной тип - указатель на интыжер, так какого хрена все пишут звёздочку около самого имени? Или ещё лучше, int a. Это вообще откуда пошло?

const int
const a; лол
1022302
#401 #1022302
>>1022300
Ну всё, мама меня не научила звёздочки вставлять.
КРЧ, проблема с расположением звёздочки, вот.
#402 #1023236
Подходит парень:
- Успокойтесь, у вас обычный гемоppой
#403 #1023661
Инженер не говоря ни слова лезет в карман, бумажку достает и говорит:
- Все, Изя
#404 #1023874
>>1022235
Можно пример ситуации из первого абзаца?
1023877
#405 #1023877
1023907
#406 #1023907
>>1023877
Можно подробнее о том, как это работает? С конструктором вместо функции сработало бы?
1023932
sage #407 #1023932
>>1023907

>Можно подробнее о том, как это работает?


Нельзя, потому что это не работает.

> С конструктором вместо функции сработало бы?


Что именно?
1023933
#408 #1023933
>>1023932
Вместо make_unique поставить unique_ptr.
1023935
sage #409 #1023935
>>1023933
Это неважно.
1023944
#410 #1023944
>>1023935
Так почему этот код не работает?
1023947
sage #411 #1023947
>>1023944
Потому что в инициализаторе мембера ptr находится lvalue и компилятор пытается вызвать конструктор копий, который у unique_ptr удалён.
#412 #1023961
Если в требованиях указано "Хорошая алгоритмическая база", что мне следует вспомнить перед собеседованием, чтобы не обосраться?
#413 #1023982
>>1023961
Если бы всё так просто было.
#414 #1024021
>>1023961
Это значит, что ты будешь ковырять всю ту же легаси-хуйню, что и все, просто на собеседовании хуесосы будут изображать из себя ГУГЕЛЬ и просить на доске перевернуть бинарное дерево
#415 #1024027
Безопасно ли так работать со списком? Обе функции вызываются несколькими тредами. Всмысле не наебнется ли list во время foreach если ремувнуть элемент по итератору

class SomeClass {
boost::mutex m_mtx;
std::list<Elem> m_list;

...
}

void SomeClass::removeF( std::list<Elem>::iterator _elem_it ) {
m_mtx.lock();
m_list.erase( _elem_it );
m_mtx.unlock();
}

void SomeClass::Scan() {
for ( const auto & it : m_list ) {
m_mtx.lock();
DoSomeConstShit( it );
m_mtx.unlock();
}
}
10241781024208
#416 #1024053
>>1021853
Если я буду писать свою ось, то только доказательным методом. Сделать это на плюсах без серьёзной потери производительности невозможно.
#417 #1024178
>>1024027
Кажись тебе надо переписать цикл. Потому что ты можешь удалить элемент после взятие ссылки и до захвата мютекса.
#418 #1024199
Помогите настроить code::block для linux.
1024203
#419 #1024203
>>1024199
Помог.
1024245
#420 #1024208
>>1024027
Неа, удаление элемента из списка не атомарная операция. Перед проход по списку в цикле захватывай мьютекс.
И еще:
1. Для захвата мьютекса используй lock_guard (RAII, же).
2. В C++11 мьютексы есть в STL.
3. Изменение разделяемой структуры из нескольких ниток кривой дизайн. В дальнейшем много проблем можно огребсти. Всю многопоточность стоит сводить к схема поставщик\получатель (через thread-safe очереди).
#421 #1024245
>>1024203
Спасибо. А как добавить/убрать компилятор?
#422 #1024301
Анонч, тут ерунда какая то. MVS MFC
Вот есть код, призванный передать мне результат выполнения комманды из консоли и он отлично работает.

char buffer[128];
std::string result = "";

FILE* pipe = _popen("ping 8.8.8.8", "r");
if (!pipe) throw std::runtime_error("popen() failed!");
while (!feof(pipe)) {
if (fgets(buffer, 128, pipe) != NULL) {
result += buffer;
}
}
_pclose(pipe);

Но стоит заменить мне тренировочную "ping 8.8.8.8" на реальную "ffprobe.exe 1.webm", то всё. Вывода нет, реакции нет.

При этом, в тестовом консольном проекте "ffprobe.exe 1.webm" даёт адекватный вывод.
ЧЯДНТ?
inb4: Использую MFC
#423 #1024303
>>1024301
С разметкой продолбался, но суть понятна.
#424 #1024318
>>1024301
При этом, с исполнением команды всё явно ок, т.е FILE* pipe = _popen("ffplay.exe 1.webm", "r"); запускает 1.webm в любом случае.
#425 #1024465
>>1024301
http://forums.codeguru.com/showthread.php?246447-_popen()-in-MFC

Тут пишут, что всё MFC виноват, слишком слоупочный.
Попробуй как-то так не бейте - лучше обоссыте:
#include <future>
...
void something();
...
auto handle = std::async(something);
handle.get();
1024533
#426 #1024533
>>1024465
Спасибо!
#427 #1024588
Пишу сюда ибо тут должна быть более знающая аудитория.
Решил вкатиться в программирование ради интереса. После изучения большей части синтаксиса чистого Си навалила скука. И тут я открыл для себя OpenGL. Все бы шло замечательно, но в учебнике где используется чистый Си, уже сразу с основ идут нерабочие примеры и не только у меня эта проблема. Глянув новые книги и видеокурсы, стало ясно что везде используются плюсы. Вдобавок, как я понял, гуи пишутся с использованием qt,
а там опять плюсы.
Короче, для написания приложений с гуи и трехмерной графикой годятся только плюсы? Или есть альтернативы для чистого Си? (ну если не считать gtk+ для гуев и старой книги по OpenGL. Просто страшно начинать изучать плюсы после беглого просмотра тредов.
1024713
#428 #1024598
>>1022215

>именованный rvalue


>named rvalue references


Ёбу дал?
1024600
#429 #1024600
>>1024598
О чем вообще это было?
1024605
#430 #1024602
>>1016662 (OP)
Как вывести std::basic_string<TCHAR> на консоль?
#431 #1024604
>>1024602
std::wcout << string;
10246051024616
#432 #1024605
>>1023961
Кормена.
>>1024600
О том, что один пытается утереть другого, но сам не читает то, что вставляет.
>>1024604
TCHAR - это либо WCHAR, либо CHAR в зависимости от макроопределения UNICODE (или как там).
>>1024602
Твои варианты:
WriteConsole(string.c_str())
std::cout<<string //если без юникода
std::wcout<<string //а вот здесь ты жестоко наебёшься, в винде это не работает от сллова "никак"
#433 #1024608
>>1024605
Я про то, о чем спор вообще был? Я так и не смог понять. Так там два дебила говорили об одном, один просто с сайта саттера линки таскал, второй из доки страуса, лол. При этом один поехавший дед, второй селюк не знающий английский. Крестовое комьюнити короч.

>TCHAR - это либо WCHAR, либо CHAR


Так вроде wcout перегружен для обоих.

http://cpp.sh/37q2h
10246091024802
#434 #1024609
>>1024608
А да, для строки надо в таком случае обязательно c_str получается еще въебать
1024610
#435 #1024610
#436 #1024616
>>1024604
>>1024605
>>1024605
Мне нужно, чтобы моя программа в зависимости от настроек могла хранить в одном и том же std::map или ANSI-строки или UNICODE-строки, а потом выводить этот map в консоль. Как это реализовать без быдлокода?
sage #437 #1024617
>>1024602

>TCHAR


Ненужно.
>>1024605

>TCHAR - это либо WCHAR, либо CHAR в зависимости от макроопределения UNICODE (или как там).


Самое идиотское, что могла придумать Microsoft — что приложения можно будет собирать для разных версий Windows (NT и не-NT) просто определением или не определением одного макроса.

Если тебе так нравится кодить под WinAPI, то лучше просто забудь про то, что UNICODE может быть НЕ определён. Считай, что он всегда определён и TCHAR=WCHAR.

Если ты, конечно, не собираешься компилять под Windows 95.
1024713
#438 #1024619
>>1024616
Храни все в UNICODE, если тебе важно именно содержимое строк. Если тебе необходимо иметь и то и то в одном массиве одновременно - погугли type erasure container.
#439 #1024713
>>1024588
Лучше доучи, базовое с++ ооп за один день берётся, а std'шный мусор OpenGL/qt не юзают, т.к. имеют уже свои более удобные аналоги.
>>1024617
На все winaip функции есть варианты w/t/c. Всего-то надо один раз загуглить их. Однобайтовое говно всегда может понадобится, не все сторонние либы хотят юзать юникод.
sage #440 #1024716
>>1024713

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


Т.е. ты вместо обёрток над вызовами либ предлагаешь дизайнить всю аппликуху вокруг либы?
1024719
#441 #1024719
>>1024716
Это же от конкретной либы зависит, как там будет удобней. Если там есть внутренние калбаки, или может она вообще на кодировке utf8 работает. Некоторые вещи бывает проще делать модульно, чем на всё свои обёртки пилить.
1024720
sage #442 #1024720
>>1024719

> или может она вообще на кодировке utf8 работает


О, это правильная либа.
#443 #1024737
>>1024713

> а std'шный мусор


В чем мусорность std?
10247391024797
sage #444 #1024739
>>1024737
Не обращай внимания, тут это часто вбрасывают.
#445 #1024797
>>1024737
Для меня это - Нечитабельный, неюзабильный, сферический в вакууме.
Оригинальная идея была хорошая, людям предлагалось не изобретать велосипеды, плюс помогает делать код более кроссплатформенным.
Но всё это разбилось об реальность ооп в с++, где для эффективного использования std приходилось значительно повышать свой уровень знания языка, типа следить за лишними копированиями, продлевать время жизни объектов и.т.д. Т.е. либа которая должна была упростить жизнь, её начала усложнять. Основные разработчики сторонних либ и фреймворков решили отказаться от использования унифицированного std в пользу оптимизации своих решений. Т.к. основная масса разработчиков всё же не пишут сферические хелловорлды, то брать за основу именно std им нет смысла.
Сейчас новые стандарты c++ направленны на изменение языка именно в сторону упрощения использования std, но люди ленивые, и стек технологий тоже не спешит перестраиваться под это. Потому это остаётся не нужным, хотя гики всегда есть. Можешь и ты таким стать, а люди которые будут потом сопровождать твои проекты будут тебе очень "благодарны".
10248011024802
#446 #1024801
>>1024797
Ну хуй знает чувак, какой язык - такая и стандартная библиотека. Сам stl не пользую, пользую разные .h-only либы для контейнеров и алгоритмов, а в основном рабочем проекте свой фреймворк. Но есть все-таки области применения, во первых - на stl просто учиться, понимать концепции. Во вторых - мелкие проекты до 250 000 строк включительно вполне себе неплохо ложаться на stl, ввиду явной простоты логики и возможных зависимостей. Бывают конечно адский сложные маленькие проекты, но ты меня понял.
1024821
#447 #1024802
>>1024608

>Так вроде wcout перегружен для обоих.


Будет сложно запомнить то, что в wcout нельзя выводить вчары. Лучше вообще не использовать его.
>>1024616
std:variant или своя структурка с мемберами string и wstring. Если один пустой, то данные в другом. Очень странное задание.
>>1024713

>а std'шный мусор OpenGL/qt не юзают,


У кучи Кутэшных контейнеров есть совместимость или метод преобразования с/между std-контейнерами. Ты можешь писать на Кутэ без std, но ты почти всегда сможешь заюзать std из Qt.
>>1024713

>На все winaip функции есть варианты w/t/c.


Все современные используют wchar.
>>1024797

>типа следить за лишними копированиями


У тебя ничего не взорвётся от лишних копирований, и есть множество оптимизаций, включая тот же (N)RVO, а методы контейнеров инлайнятся.

>Основные разработчики сторонних либ и фреймворков решили отказаться от использования унифицированного std в пользу оптимизации своих решений.


Лолшто.

>Потому это остаётся не нужным,


Кому?
#448 #1024804
>>1024802
Я не он но,

>Лолшто.


Это так, чем дальше в лес, тем меньше крупных проектов на stl. Посмотри гугловый софт, фейсбучную опенсорсную часть, топовые гитхабовские проекты. В проприоритарных проектах я его лично вижу все реже. Единственный кто его еще активно продвигает в коде - это Microsoft (который его через хуй поддерживает, лол).

>У тебя ничего не взорвётся от лишних копирований


Так эт, если нет zero-cost-abstractions то кресты это хуита полнейшая без задач.
#449 #1024815
>>1024616
Родной, ASCII - подмножество UTF-8.

На пальцах. Unicode это не кодировка, это метод. Кодировки это UTF-8/16/32. UTF-8 отличается тем, что в зависимости от кодируемого диапазона меняется кол-во байт представления символа. И внезапно символы 0-127 кодируются одним байтом.
1024984
#450 #1024821
>>1024801
Мейби, каждому своё, но лично мне было бы лень учить то, что с высокой степенью не понадобится.
>>1024802

> почти всегда сможешь заюзать std из Qt


Это напоминает "Как сделать троллейбус из буханки хлеба". Читай контекст вопроса: человек спрашивал как ему проще всего перейти, а не как ему заморочиться.

> У тебя ничего не взорвётся от лишних копирований


Я говорил "эффективного использования", а побыдлокодить можно на чём угодно.
1024984
#451 #1024825
>>1024804

>Так эт, если нет zero-cost-abstractions то кресты это хуита полнейшая без задач.


Так в том и прелесть, что в нагруженном коде ты можешь обойтись без лишних аллокаций, а в гуйне, например, хуярить как проще, лишь бы работало. В Qt, например, сплошной пимпл, аллокация на аллокации, но работает все равно быстрее жабы или браузерной параши.
1024865
#452 #1024865
>>1024825

>В Qt, например, сплошной пимпл, аллокация на аллокации, но работает все равно быстрее жабы или браузерной параши.


И вот после этой хуйни подавай им нормально работающий KDE без лагов.

Вообще, анон прав - STL-контейнеры редкостная залупа для хуяк-хуячанья, причём на редкость неудобная, в которую полтора десятка лет тащили невладеющие строки.
Еще через десяток лет, когда потребности опять поменяются, они туда протащат наконец таки ренджи, спаны, интрузивные контейнеры, оптимизацию для мелких векторов и строк, контейнеры которые можно будет юзать с униками без их собственных рефкаунтеров, еще через 2 десятилетия мб локфри контейнеры и конкурентные очереди с блекджеком притащат - и это все опять окажется никому нахуй не нужно как string_view, который у каждого проекта уже свой, либо как футуры с асинками, которые просто тупо уебские настолько, что их все сами под свои нужды реимплементируют.
#453 #1024884
>>1024802

>в wcout нельзя выводить вчары


Почему?
1024984
#454 #1024892
>>1024865
где и кем работаешь? Хоть примерно.
1024899
#455 #1024899
>>1024892
По утрам - кассиром в макдаке, по вечерам грузчиком.
1024900
#456 #1024900
>>1024899
По ночам - макдаком в кассире.
1024909
#457 #1024909
>>1024900
Это заработок методом рекурсивного спуска макдака в кассира.
#458 #1024913
>>1024865
не верьте этому пиздюченку, он не щарит на самом деле
#459 #1024918
>>1024804

>Это так, чем дальше в лес, тем меньше крупных проектов на stl. Посмотри гугловый софт, фейсбучную опенсорсную часть, топовые гитхабовские проекты.


Охуительные инсайдерские истории. Неполенился, залез на гитхаб, взял первые четыре игровых движка: cocos2d, godot, cryengine, sfttech. Во трех используются stl контейнеры. В godot, написали свою реализацию контейнеров, с интерфейсом аналогичным stl, ололо.

>>1024865

>И вот после этой хуйни подавай им нормально работающий KDE без лагов.


Попробуй использовать нормальную ось вместо линуха.

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


Половина из этого есть в бусте, вторую половину добавлять бессмысленно, поскольку покрывает какие-то весьма специфические случаи (как например локфри контейнеры). А ты ебанат, если этого не понимаешь
10249331024941
#460 #1024933
>>1024918

>взял первые четыре игровых движка


>гугловый софт, фейсбучную опенсорсную часть


Не ну сравнил так сравнил ни прибавить не убавить.

>весьма специфические случаи (как например локфри контейнеры)


Хотя понятно, ты просто манька из /gd/ за еду.
1025121
#461 #1024939
>>1024865
Оптимизации для мелких строк/контейнеров втащили кстати, но не по Александреску, а просто на стеке кусок хярят в теле класса.
1024941
#462 #1024941
>>1024918

>Попробуй использовать нормальную ось вместо линуха.


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

>Половина из этого есть в бусте,


В бусте только интрузив контейнеры из этого списка, остальное — тащи откуда хочешь, из кучи реализаций gsl-а, фейсбучной библиотеки, разных реализаций ренджей, из llvm если хочешь, с миру по нитке блять. В итоге вместо того чтобы просто сесть и писать — иди ищи и трахайся с деплоем тыщи сторонних библиотек, со своими зависимостями, странностями и просто кодстайлом.

>какие-то весьма специфические случаи (как например локфри контейнеры)


Так. 2017-й год. Уже даже бюджетные процессоры все поголовно 6-8 ядерные, даже в ебучий STL, который развивается со скоростью ребёнка с синдромом дауна, запилили паралельные алгоритмы, можель памяти, обертки над тредами и мутексами и все вот это.
Что же говорит анон об этом? Нинужна! Ой, иди нахуй просто.
>>1024939
Щито? Я только недавно на последнем шланге гонял бенчмарки фоллиевского small_vector, который этим занимается, и было не похоже на это. Пруфца бы.
#463 #1024947
>>1024941

> но интерфейс у него никогда не лагает,


У меня лагал, когда хром отжирал всю память.
1024951
#464 #1024948
Как анон относится к Qt: годнота или говно?
#465 #1024950
>>1024941

>Щито?


Не, я тебе напиздел короч, они только опциональный COW в строки впилили, small_alloc остался на уровне пропозала. А я думал в 17 примут.

>>1024948
Вынужденная необходимость, когда есть дешевые крестомакаки и ты не можешь нанять шарпистов/джавистов.
#466 #1024951
>>1024947
Ну хуй тебя знает. У меня CLion постоянно уходит в свопы почти при каждом ручном инклуде (автоматические из подсказок моментально подставляются, лол) или при попытках навигации по подключенным где-то в залупе объявлениям, виснет намертво на 10-20 секунд, но интерфейсу похуй - экраны листаютсятак же плавно, курсор вообще никогда не фризится.
1024953
#467 #1024953
>>1024951
CLion это говно ебаное, какое еще поискать. Пользуй что угодно другое и будет ок. Я например когда приходится в линукса выйти пробздеться использую codelite.
1024954
#468 #1024954
>>1024948
Вопрос уровня: как относится к гугловскому кодстайлу? Трупстрауса же пишет с 4 отступами, а эти пидоты с 2, так это выскочкино говно или гениальное гугловское изобретение?
>>1024953
Дык, на полноценной пеке с 32 гигами и линуксом он летает (зато курсор таки фризится), другое дело что на маке альтернатив нету вообще - икскод говнище которое умеет даже нормально автокомплитить плюсы и вечно в куче багов, кодлайт, кдевелоп и прочие выглядят на макоси как и все что пишется для линукса а-ля вырвиглаз, остается только культя и цлион. Культя в системное сглаживание не умеет и это тоже пиздец, вот так.
#469 #1024969
>>1024948

>Как анон относится к Qt


ну вот я для себя сделал такой вывод: хочешь относительно без проблем устроится крестомакакой, то у тебя два пути
- первый это игрострой, ну а в россии щас это мобилки, по сути - что там надо задрачивать, понятно
- и остальные вакансии - это надо задрачивать qt
к сожалению
вот так все просто
#470 #1024971
>>1024954
кстати, в этом то и преимущество табов - их отображение ты можешь настроить как 2 так и 4 пробельных места
таким образом, в коде табы, а у разных людей на проекте отображается, как им удобно
1024977
#471 #1024974
>>1024954
зачем корежишь фамилии? представь, твою фамилию переиначат, будет же обидно, не так ли
10249751024977
#472 #1024975
>>1024974
Не так.
#473 #1024977
>>1024971
Пробелы выиграли войну, просто признай и сдайся.
>>1024974
Мне похуй будет.
#474 #1024984
>>1024815

> в зависимости от кодируемого диапазона меняется кол-во байт представления символа


ЕМНИП, можно опкодом выбрать другую страницу и если символы неподалёку, т оможно по байту на символ для любого языка.
>>1024804

>Так эт, если нет zero-cost-abstractions то кресты это хуита полнейшая без задач.


Если совсем грубо - то да, но тебе не нужны зиро-кост абстракшнз на всё вообще. Про контейнеры я уже сказал.
>>1024821

>Читай контекст вопроса: человек спрашивал как ему проще всего перейти, а не как ему заморочиться.


Ты удивишься, но в самом Qt подводных камней порядочно, чего только COW стоит. Контейнеры из Кут очень похожи на контейнеры из stl. ОП вопроса страшился не эстээля, а количества премудростей в плюсах.

>Я говорил "эффективного использования"


"эффективное" != "математически оптимальное"
>>1024884
Потому что виндовая CRT (с помощью которой реализована STL) с багом, на который МСу насрать.
#475 #1025116
Где взять этот ваш великий и ужасный СТАНДАРТ?
Как вообще его читать-понимать и нужно ли?
#476 #1025121
>>1024941

>просто сесть и писать


Смешная шутка.

>В бусте только интрузив контейнеры из этого списка


Как насчет boost::lockfree? Как я понимаю, тебя он не устраивает? Ну так пердолься с либами, раз не устраивает, это сугубо свои половые трудности. То что тебе нужно это еще не значит что оно должно быть в стандарте, понимаешь?

>>1024933

>Не ну сравнил так сравнил ни прибавить не убавить.


Мои пруфы не пруфы? Понемаю, бывает.
10251431025268
#477 #1025133
>>1025116
а) купить
б) украсть
в) качнуть последний драфт, публично выложенный комиссией перед утверждением (бывают мелкие исправления перед утверждением)

>Как вообще его читать-понимать


а) в глубину, ЕВПОЧЯ: не понимаешь термин - ищешь определение
б) с начала
#478 #1025135
>>1025116
Предлагаю забить.
#479 #1025143
>>1025121

> То что тебе нужно это еще не значит что оно должно быть в стандарте, понимаешь?


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

А вообще, ахуенные какие-то у тебя доводы. Долбоёбский лист из STL, который копирует каждый элемент, хранит овердохуя лишней инфы и просто на кой-то хуй рефкаунтит содержимое, из-за чего при малейших лагах придется либо писать в C-style либо тащить буст - нужен, как и вектор со строкой которые будут алоцировать хуй знает сколько памяти когда нужно десяток символов в него закинуть, что можно было бы сделать на стеке - тоже зачем-то нужен, а вот нормальный набор контейнеров под разные задачи, который есть в любом нормальном языке (я сейчас не про расты с говнами) - нахуй не упали. Ну и любитель же ты говна.
10251611025167
#480 #1025161
>>1025143

>на кой-то хуй рефкаунтит содержимое, из-за чего при малейших лагах придется либо писать в C-style либо тащить буст - нужен


Где карту получали туда и идите.
#481 #1025166
Посоны, поясните зачем нужны прекомпилированные заголовки?
Я так понимаю: Из-за проблем с кросс-компиляцией и бинарной совместимостью, некоторые люди решили делать все в заголовках, чтобы принудительно компилировать нужно было всем, а не таскать вероятно не совместимые бинари. Далее, если h-only либ очень много и они большие (boost) компиляция проекта увеличивается в разы. Теперь мы заводим свой prcomp.c + precomp.h, которые служат только для того, чтобы получить объектный файл, который не нужно будет часто перекомпилировать, и который не нужно таскать по репозиториям.
Как-то так?
1025168
#482 #1025167
>>1025143

>> То что тебе нужно это еще не значит что оно должно быть в стандарте, понимаешь?


>Я щас кекнул: ну вот мне нахуй не нужна STL. По твоей логике её от туда можно просто выпилить и не тратить время


Ёю твою мать...
1025177
#483 #1025168
>>1025166
Предкомпилированные заголовки (не)нужны потому, что один и тот же заголовок может быть включён в несколько исходников. Кэширование результата компиляции заголовочного файла (в который может быть включено всё, что используется во всей программе) сильно ускоряет компиляцию.
1025174
#484 #1025171
>>1018248
Жаль что платный. На торрентах еще не выложили?
#485 #1025173
>>1024954

>рупстрауса же пишет с 4 отступами, а эти пидоты с 2, так это выскочкино говно или гениальное гугловское изобретение


Экономия места в кодбазе.
1025177
#486 #1025174
>>1025168

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


gcc и msvc умеют держать это на диске, или на каждый сеанс компиляции новый кэш делается?
1025205
#487 #1025177
>>1025167
Я просто инвертировал твое утверждение, бывшее отрицательным по отношению ко мне — с точки зрения дискретной математики все ок, надуй иди.
>>1025173
Да нет, я вот недавно попробовал сам — и подсел. Ахуенно.
1025205
38 Кб, 1242x385
#488 #1025180
Чому?
#489 #1025193
>>1025180
Переустанови Windows
#490 #1025194
>>1025180
очевидно не совпадают кодировки.
1025199
#491 #1025199
>>1025194
Ну окей, делать-то что.
Может есть бустовая альтернатива этому говну?
1025200
#492 #1025200
>>1025199
Тебе нужно японский текст из utf-8 в кодировку для названий виндовых файлов сделать? Гугли как это делается на чем тебе нужно.
И проверь еще в какой кодировке твои исходники.
10252021025206
#493 #1025202
>>1025200
https://msdn.microsoft.com/ru-ru/library/windows/desktop/dd317748(v=vs.85).aspx

Майки тут божатся, что для ntfs используют unicode. Попробуй в каком-нибудь Notepad++ пересохранить исходник в utf-8.
Может еще как-то студию можно допердолить.
10252061025207
#494 #1025205
>>1025174
Гугли сам. Если я правильно понял - без предкомпилированного заголовка им придётся компилировать его в каждой единице трансляции.
>>1025177

>Я просто инвертировал твое утверждение


1) Не моё.
2) "Инвертируя" (лолкак) утверждение, ты не оспариваешь его.
>>1025180

>CreateDirectoryA


>L"хуй"


Твоя стопа умерла в зародыше.
#495 #1025206
>>1025200
Не совсем, в принципе, я до конца не понимаю что нужно делать.
Идея в том, чтобы сделать двухсторонний преобразователь из юникода в аски, чтобы работало с любыми символами.

К примеру, банально создать папку через CreateDirectoryA, или это функцией невозможно создать "Jхуй花咲くいろは2" ?

>>1025202
Все в utf-8, проверил даже.
1025210
#496 #1025207
>>1025202
1) Unicode - это не utf8 (что такое unicode() - даже не знаю).
2) В каком месте описания CreateDirectoryA написано, что ты можешь передать UTF-8 и получить читаемый текст?
10252081025213
#497 #1025208
>>1025207
unicode() -- toUTF8()
#498 #1025209
Почему фьючерсы называются именно так? Что это значит?
#499 #1025210
>>1025206
MSDN открой-то, блядь.
1025213
36 Кб, 1387x496
#500 #1025213
>>1025207
Да я дурачок просто. Оно же создает какую-то поеботу с какими ебнутыми символами, значит что-то происходит.

>>1025210
То есть Utf-8 не применим в WinAPI ?

Ладно, основная причина - gcc не открывает файлы по std::wstring.
Как с этим справиться?
10252181025302
#501 #1025215
Какую IDE прикрутить к mingw?
1025220
#502 #1025218
>>1025213

>То есть Utf-8 не применим в WinAPI ?


Бинго, блядь.

>Как с этим справиться?


Никак.
http://en.cppreference.com/w/cpp/io/basic_fstream/open
Открывай файлы через WinAPI.
Олсо, обрати внимание на эту строчку:
void open( const std::filesystem::path &filename,
ios_base::openmode mode = ios_base::in|ios_base::out );
(4) (since C++17)
И клацкни ссылку на std::filesystem::path. Там поймёшь сам. C++17 включается в gcc экспериментально через -std=c++1z
#503 #1025220
>>1025215
Блокнот code::blocks
1025238
#504 #1025238
>>1025220
Можно даже редактор кода, лишь бы подсветка была.
Code blocks не понравился
1025246
#505 #1025246
>>1025238
notepad++, подсветка есть.
1025301
#506 #1025258
Нравится Visual Studio Code, но под линуксом в нем отвратительная подстветка. В каком файле хранится описание охуенной виндовой подсветки?
1025261
#508 #1025268
>>1025121
Пруфы на что?
sage #509 #1025292
>>1025116
employer тебе не предоставляет?
#510 #1025301
>>1025246
Там автокомплита нет
sage #511 #1025302
>>1025213

>Ладно, основная причина - gcc не открывает файлы по std::wstring.


>Как с этим справиться?


Есть такая либа, называется nowide. Есть как в виде boost::nowide, так и в самостоятельном виде. Intent — избавиться от необходимости использовать некоторые w- функции и сделать это переносимо. Сам не пробовал, т.к. я, слава б-гу, не спермоблядь. Но, как я слышал, пользователям данной ОС она нравится.
#512 #1025346
Когда уже полностью портируют llvm-гомосятину на винду?
Заебался использовать сlang вместе с уебищным mingw или msvc.
1025350
#513 #1025350
>>1025346
Никогда, это просто нахуй никому не нужно.

Кстати, посмотрел http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4656.pdf и... блять, ну нахуя это говно (asio) тащить в стандарт? Надеюсь и в 20-м отклонят нахуй.
1025357
sage #514 #1025357
>>1025350

> Надеюсь и в 20-м отклонят нахуй.


Оставь надежду. Я надеялся что filesystem не смогут протащить — но нет, протащили.
1025416
#515 #1025397
Почему лучше VS еще ничего не сделали?
10254031025435
#516 #1025403
>>1025397
define лучше
1025422
#517 #1025416
>>1025357
Дык, fs хоть немного попахивает годнотой.
Это же чудище требует создавать по 5 классов ради того чтобы послать ебаный пинг и получить ответ.
#518 #1025422
1025453
#519 #1025435
>>1025397
CLion.
А отсутствие профайлера он окупает быстрым стартом и настраевыми хоткеями (можно шлятся по коду ебаной средней кнопкой мышки! гипгип ура) и наличием человеческого мультикурсора (в студии, как и остальных пирдольках от спермы, даже с этим в 2017 проблема).
1025443
#520 #1025443
>>1025435
Он безбожно тормозит, в отличие от VS, которая хоть как-то сносно работает на моем ноутбуке.
10254471025453
#521 #1025447
>>1025443
Он тормозит только во время индексации, после летает. VS тормозит всегда по-немножку, лол.
10254481025451
#522 #1025448
>>1025447
Ну я вот просто думаю, что лучше VS + VS Assist X/Resharper C++ или CLion.
10254491025453
#523 #1025449
>>1025448
И да, пока что только вкатываюсь в Си, кресты буду учить потом.
1025453
#524 #1025451
>>1025447
Кстати, тормозит Clion в основном при выделении кода, это прямо ощутимо замечается.
В VS такого нет
#525 #1025453
>>1025422
Хуй через койчо, дебич.
>>1025443

>тормозит, в отличие от VS,


Телл ми мор фаггит. Последняя нативная студия - 14.
>>1025449 >>1025448
Это просто, блядь, неважно: Клион или Студия.
1025455
#526 #1025455
>>1025453

>Последняя нативная студия - 14.


Если про полностью нативную говорить - 10, вообще-то. После начались лаги (они поэтампно портировали на дотнет).
1025458
#527 #1025458
>>1025455
В 10 и ниже нет почти нихуя, с тем же успехом можно VS Code использовать с плагинами
1025459
#528 #1025459
>>1025458
Там нихуя нет потому что они в то время таким образом двигали дотнет, и наплодили решарперов с прочими асистентами.

Но не суть - это была последня нативная реинкарнация студии.
1025460
#529 #1025460
>>1025459
И что же сейчас используют в промышленной разработке?
CLion? VS? Или что-то другое?
1025462
#530 #1025462
>>1025460
Кому что нравится.
Вообще, вне винды конкурентов клиону и нет. Нихуя не умеющие культи, кодлайты, вено забагованные в говнище кдевелопы и икскоды...
1025471
#531 #1025471
>>1025462
QtCreator
1025482
#532 #1025482
>>1025471

>Нихуя не умеющие культи


>Этот ВЕЗДЕ ОДИНАКОВО УЕБИЩНЫЙ рендеринг шрифтов


>через раз работает с cmake-проектами

10255451025837
#533 #1025545
>>1025482
define нихуя (нахуй тебе Кутэ? Тебе креактор предлагают, а не Кутэ)
Шрифт меня устраивает. Надеюсь, ты про ИДЕ говоришь, а не про Кутэ, который ьебе не предлагали.
1025568
#534 #1025568
>>1025545
Да, ебло тупое, я именно что про культьКреэйтор говорю (ибо по иронии судьбы, что называется, в самом куте системное сглаживание шрифтов нормально работает). Если тебя устраивает шрифт - ты либо сидишь на мониторе 720x480, либо просто долбишься в глаза и ничего лучше не видел.
1025830
#535 #1025616
Посоветуйте книгу по WinAPI. Начал читать Петзольда "Програмирование для Windows 95", но там ни один пример даже не компилируется на Visual Studio.
1025830
28 Кб, 424x363
33 Кб, 613x445
#536 #1025689
анон объясни пожалуйса почему не выходит из цикла?
только только вкатываюсь
1025766
#537 #1025766
>>1025689
Ctrl+Z
1025767
#538 #1025767
>>1025766
Бля, не. cin >> word скипает пробелы, поэтому word всегда заполнен.
1025830
#539 #1025830
>>1025568

>я именно что про культьКреэйтор говорю


`нихуя’ undeclared (first use in this function)

> Если тебя устраивает шрифт - ты либо сидишь на мониторе 720x480, либо просто долбишься в глаза и ничего лучше не видел.


Вариант "мне насрать на шрифт" ты не рассматриваешь?
>>1025616
Это каким боком к плюсам относится? Иди в ньюфаг-тред или новый создай (про винду).
>>1025767
while(cin>>word, word!="\n")
например. Контролз тебе не поможет - оператор>> возвращает не буль и не значение ошибки.
http://en.cppreference.com/w/cpp/io/basic_istream/operator_gtgt
sage #540 #1025831
>>1025830

>Контролз тебе не поможет - оператор>> возвращает не буль и не значение ошибки.


Да, он возвращает стрим. У которого есть оператор bool
http://en.cppreference.com/w/cpp/io/basic_ios/operator_bool
1025832
#541 #1025832
>>1025831
Блин, забыл. Этот оператор проверяет fail(), но fail() не проверяет EOF-статус.
1025833
sage #542 #1025833
>>1025832

>fail() не проверяет EOF-статус


Действительно.

Но если выставлен eofbit, то при следующей попытке чтения будет выставлен failbit. Так что while (cin >> ...) работает.
1025865
#543 #1025835
>>1025830

>Вариант "мне насрать на шрифт" ты не рассматриваешь?


Когда ты днями работаешь с текстом — на него похуй быть ну никак не может, если он не пиздоглаз.
1025837
#544 #1025837
>>1025835

>он


>долбоеб которому похуй на эти шрифты


>>1025830

>`нихуя’ undeclared (first use in this function)


>>1025482

>>Нихуя не умеющие культи


У тебя парсер говно.
1025865
#545 #1025850
>>1025830

>Это каким боком к плюсам относится?


Почему консольный ввод/вывод относится к плюсам, а графический - нет?
1025855
#546 #1025855
>>1025850

>Почему консольный ввод/вывод относится к плюсам, а графический - нет?


Консольный ввод/вывод есть в стандартной библиотеке, а окошек там нет
1025859
#547 #1025859
>>1025855
Где обсуждают нестандартные библиотеки для плюсов? Явно же не в ньюфаг треде.
10258651025866
#548 #1025865
>>1025833
Но тогда одна строка будет обработана дважды, разве нет? Что окажется в строке, если из потока ничего не считано?
>>1025837

>У тебя парсер говно.


`нихуя’ undeclared (third use in this ITT thread)
>>1025859
С твоим вопросом ("там ни один пример не компилируется") тебе вообще в MSDN, а не треды создавать. Учить одновременно WinAPI и даже C (хер с ними, с плюсами) тебе будет сложно.
WinAPI - это не библиотека для плюсов, это API ДЛЯ СИ.
10258751025897
#549 #1025866
>>1025859
Нигде их не обсуждают.
Тем более винапи никто уже в помине не использует.
10258751025877
#550 #1025875
>>1025865
C/C++ я уже выучил и писать консольные приложения мне не интересно.

>>1025866

>Нигде их не обсуждают.


Очень плохо, т.к. "голый" С++ практически бесполезен. А современное приложение на С++ - это графическое приложение.
#551 #1025877
>>1025866

>Нигде их не обсуждают.


MSDN - это ДОКУМЕНТАЦИЯ, блет.
>>1025875

>C/C++ я уже выучил и писать консольные приложения мне не интересно.


В SDK есть огромная масса примеров для всего. Нахрен тебе примеры из книжки про Вин95?
#552 #1025880
>>1025875

>современное приложение на С++ - это графическое приложение


Ну так учи Qt, нахуй тебе сишное винапи чтобы рисовать окошки?
Скажу больше, эпоха десктопных приложений прошла, сейчас все переносится в веб.
sage #553 #1025897
>>1025865

>Но тогда одна строка будет обработана дважды, разве нет? Что окажется в строке, если из потока ничего не считано?


Я тут почитал и попробую подробно изложить.
Но сначала стоит заметить operator>> для string не читает пробельные символы. К которым, в частности, относится \n. Так что твой код точно работать не будет, если только ты не подставишь локаль, в которой \n не считается за пробельный символ.

Что касается failbit:
«The failbit
The failbit is set by the following standard library functions:
The basic_istream::sentry constructor, executed at the beginning of every input function, if either eofbit or badbit is already set on the stream, or if the end of stream is encountered while consuming leading whitespace.»
http://en.cppreference.com/w/cpp/io/ios_base/iostate#The_failbit
Так что если ты в новой строке нажимаешь Ctrl-Z и, насколько я помню, в Windows ещё надо нажать Enter, в отличие от *nix, где просто Ctrl-D достаточно, то при попытке прочитать из cin в string eofbit и failbit выставятся сразу, т.к. eof будет достигнут при попытке пропустить пробелы.

Что насчёт значения строки после облома: я так понял, она останется неизменной, т.к.
«2) Behaves as a FormattedInputFunction. After constructing and checking the sentry object, which may skip leading whitespace, first clears str with str.erase(), then reads characters from is and appends them to str as if by str.append(1, c), until one of the following conditions becomes true:»
http://en.cppreference.com/w/cpp/string/basic_string/operator_ltltgtgt
Я так понимаю, если checking the sentry object говорит, что всё плохо, то str.erase() не вызывается.
1025967
#554 #1025967
>>1025897

> sentry object,


http://en.cppreference.com/w/cpp/io/basic_istream/sentry
Это не мьютекс (я так думал), это посложнее что-то, там и пропуск вайтспессов есть.
#555 #1025981
>>1025875

>C/C++ я уже выучил


>современное приложение на С++ - это графическое приложение


Я так же думал в 13 лет, ничего, с возрастом пройдет
1026042
#556 #1026042
>>1025981
Вот вы хейтите графические приложения, а ведь сами ими пользуетесь. Тот же браузер или компьютерная игра - это графическое приложение.
В одной консоли много не напрограммируешь.
1026045
#557 #1026045
>>1026042
Гуй ты можешь хоть на жаваскрипте сделать (прости хоспиди).
1026062
#558 #1026062
>>1026045
А кто эту жаваскриптину запустит? Кто будет отрисовывать для неё графику. Правильно, графическое приложение, в данном случае браузер.
10260641026137
#559 #1026064
>>1026062
Охуительные истории. Что ещё расскажешь?
1026088
#560 #1026088
>>1026064
Мы как-то с ребятами в универе хотели свою операционку написать. Я даже свой загрузчик написал на ассемблере и уложился в 512 байт.
10260991026129
sage #561 #1026099
>>1026088
А я как-то голый залез в море и насрал!
#562 #1026129
>>1026088
Я как-то лабу писал, решил выебнуться и написал на WinAPI за неделю, не зная ВинАПИ вообще.
#563 #1026137
>>1026062

>А кто эту жаваскриптину запустит?


Движок V8 в хромиуме.

>Кто будет отрисовывать для неё графику


Видеокарта, очевидно

>Правильно, графическое приложение, в данном случае браузер.


А вот нихуя не правильно. JS Electron, там из браузера только движок, а ты, пидор грязный, иди нахуй со своими окнами, сейчас все нормальные пацаны пишут на таких языках как пеашпи и питоно, а вечером ебут твою ЕОТ, пока ты дрочишь плюсы, живя с мамкой и поедая ее борщи
#564 #1026154
Есть один демон std::thread, который работает фоном, получает из очереди background_task и выполняет их. Как возвращать из демона результат выполнения тасков, если они могут быть разных типов?
1026159
#565 #1026159
>>1026154
воид звёздочка и класс-энум для типа либо получать тип объекта динамически через typeid
std::variant
1026161
#566 #1026161
>>1026159
А возвращать значения из треда каким образом?
10261641026165
#567 #1026164
>>1026161
Вариант - это тимплейт, которому через аргументы нужно передать все возможные типы. Тип возвращаемого значения - инстанс этого тимплейта.
Или попердолиться с воид и typeid, и тогда будет void.
1026166
#569 #1026166
>>1026164
Я имел в виду, что проблема не в типах. Вот я обработал в треде какой-то таск. Как вернуть и треда результат обработки? Дополнительно передавать в тред лямбду, которая захватывает по ссылке локальную переменную, и при помощи лямбды присваивать этой локальной переменной значение?
10261711026240
#570 #1026171
>>1026166
Строго говоря, было бы очень неплохо иметь отдельный класс, который уничтожает тред, чтобы ты себе никогда в ногу не выстрелил, выйдя из вызывающего треда/функции и убив переменную для возврата. Это можно решить либо новым классом (деструктор которого будет всем этим заниматься), либо шаред_птром.
#571 #1026240
>>1026166
Олсо, глянь в бусте, с бустом не знаком.
Тред утонул или удален.
Это копия, сохраненная 17 июля 2017 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски