Крылатый
Монадки в плюсах.
Крылатый
Урр.
Vladislav
монадки без do-notation сахара малополезны
Крылатый
Странный тезис.
Крылатый
Почему? =)
Vladislav
ну, монадки же - просто абстракция. А в c++ на текущий момент нет способов абстрагироваться от конкретной реализации монады (на type class'ов, ни do-нотации) и писать универсальны обобщенный код для них
Vladislav
то есть, с точки зрения c++-программиста, тот факт что option<T> является монадой - просто забавный факт, ни как не помогающий на практике
Крылатый
Как это не помогающий?
Крылатый
У меня все nullable типы завёрнуты в optional
Крылатый
Чёрт знает как адекватно это сделать без optional)
Vladislav
У меня все nullable типы завёрнуты в optional
у меня тоже, но чем тебе помогает знание того, что это монада?)
Крылатый
Сердце греет.
Vladislav
Сердце греет.
ну разве что так)
Vladislav
в c++ в данный момент нет никаких вещей, работающих для любой монады (в отличие от хаскеля)
Fox
А что за optional?
Fox
Это который либо исключение, либо код возврата может вернуть?
Vladislav
optional это универсальный nullable-тип
Anonymous
Привет всем Кто шарит как VAC работает? Хочу найти способ его обойти.. Тут один человек придлагает приват читами заниматься.. дело в том что читы я раздобуду(спиздить, покрасить в фирменный цвет, подправить чего не так - и в продакшен), а вот как собственно от вака уворачиваться - я не знаю
Anonymous
Читерам, вирмейкерам и прочим нехорошим людям принципиально не следует помогать.
Anonymous
кто то на форуме где-то писал, что написали драйвер ядра, подделывающий результаты чтения памяти для античита.. но там дело не только в этом... там как то с сервером завязано
Anonymous
сам не читерю лол
Anonymous
да какая разница для меня это опыт в риверс-инжиниренге, а вообще хотелось бы знать почему VAC все ещё жив и ловит читеров за жопу
Anonymous
там как то с сервером завязано
Anonymous
но как?
Artem
Anonymous
сам не читерю лол
Ты ещё хуже - ты хочешь их разрабатывать и тем самым мешать получать удовольствие от игр огромному количеству честных игроков. Надо вообще разработку читов приравнять к разработке малвари и сажать на 2-3 года.
Anonymous
Ахах
Anonymous
ну ок
🦥Alex Fails
это умеет outcome<T> либо folly::Try
Мне тут еще говорили, что и через опшионал можно
🦥Alex Fails
🦥Alex Fails
перепутал
Alexander
есть два варианта. Какой предпочтительнее ? virtual MStateType getType( ); MStateType virtual getType( );
🦥Alex Fails
Второй не соберется
Alexander
у меня собирается. почему нет?
ГуНиСе️
есть два варианта. Какой предпочтительнее ? virtual MStateType getType( ); MStateType virtual getType( );
Кажется, можно спецификаторы в любом порядке записывать
ГуНиСе️
есть два варианта. Какой предпочтительнее ? virtual MStateType getType( ); MStateType virtual getType( );
Не мне больше нравится первый вариант — он чаще встречается
🦥Alex Fails
Alexander
с const также
🦥Alex Fails
вот конст работал норм там
Alexander
int const* p = 0; const int* r = 0;
🦥Alex Fails
Вот только int *const p = 0; и int const* p = 0; – разные вещи
ГуНиСе️
Какой-то компиль слал меня лесом
Language: cpp Source: typedef int MStateType; struct A { virtual MStateType getType( ); //MStateType virtual getType( ); }; int main() { } Stats: Compilation time: 0.12 sec, absolute running time: 0.12 sec, cpu time: 0 sec, memory peak: 3 Mb, absolute service time: 0,25 sec
ГуНиСе️
И в самом деле не компилируется, если раскоментировать
🦥Alex Fails
Language: cpp Source: typedef int MStateType; struct A { // virtual MStateType getType( ); MStateType virtual getType( ); }; int main() { } Stats: Compilation time: 0.12 sec, absolute running time: 0.14 sec, cpu time: 0 sec, memory peak: 3 Mb, absolute service time: 0,26 sec
🦥Alex Fails
ага
ГуНиСе️
Хм… кажется, в моем случае была ошибка из-за повторного определения…
ГуНиСе️
Language: cpp Source: typedef int MStateType; struct A { virtual MStateType getType1( ); MStateType virtual getType2( ); }; int main() { } Stats: Compilation time: 0.12 sec, absolute running time: 0.14 sec, cpu time: 0 sec, memory peak: 3 Mb, absolute service time: 0,26 sec
ГуНиСе️
Надо же! Работает
🦥Alex Fails
Да ясен пень. вопрос был в том, что можно ли менять виртуал и тип возвращаемого значения
ГуНиСе️
Ну вроде бы вот выше они поменялись местами, и оба скомпилировались
Alexander
рекомендации есть какие нибудь по поводу пордка?
🦥Alex Fails
как хочешь
🦥Alex Fails
Я обычно виртуал ставлю первым, чтобы можно было потом скопировать этот прототип в .cpp-файл с реализацией
🦥Alex Fails
если виртуал будет вторым, то копировать тяжелее
Anonymous
эт...
Anonymous
WriteFile(batch_files, &buf, lstrlenW(buf), &NOfBytes, NULL);
Anonymous
поч буффер не весь записывается?
Square
Руками если длину отдавать?
Anonymous
все норм
Square
Ну дык наверно не стоит тогда strlen юзать?
Square
Чо в буфере лежит? Бинарщина?
Square
И почему w?
Detur
небось там 0 где-то
Square
небось там 0 где-то
Да эт стопудова
Square
поч буффер не весь записывается?
А дай угадаю? У тебя ровно половина буфера пропадает?
Anonymous
WriteFile(batch_files, &buf, (wcslen(buf)) * sizeof(WCHAR), &NOfBytes, NULL);
Anonymous
угу половина
Anonymous
😂😂😂
Square
Vladislav
@smart_ptr, кури различие между wcslen и strlen
Anonymous
да вот же..
Square
Я б добавил разницу между char и widechar )
Square
Щя попробую найти годноту