Михаил
Я кстати хоть и не использовал, но могу сказать, что OpenSuse - хороший выбор
да кст в нем багов меньше, чем в manjaro. Даже несколько экранов корректно работают (или я так криво ставил с ventoy)
Михаил
Aleksandr
Привет, как то можно в хроме выключить кеширование сайта, который разрабатываешь? Выключить у себя для определенного сайта например. А то мин 20 иногда трачу пока пойму что это кеш, а не ошибка в разработке
Алексей
Кстати Алексей, вот простой пример ООП, максимально банальный, но рабочий, собирается через cmake
Класс Init конечно чудесный) Почему так? Я SFML не знаком, пишу на Qt, использовал Kivy на python, везде Window или что-то подобное - объект, а не namespace) Просто любопытно, как там все устроено Если это сишные интерфейсы, то все равно их логичнее в class обернуть, нет? Класс Window с методом init понятнее чем класс Init внутри namespace Window
Jsx707
на счёт кстати твоего и моего движка, я вот какой подход выбрал< не надо вообще париться с архитектурой особо, весь движок будет разбит на отдельные модули, которые будут представлять из себя бибилиотеки. ВОт например компонент Core - это просто набор библиотек написанных на C++. Тут у нас менеджер оконор, событий, отрисовки, файловая система и тд. Editor - графическое приложения для движка. И вот смотри в чём прикол, если Не нужно приложение и прочие компоненты и интерфейсы, просто линкуем основы движка как бибилиотеку к игре
Jsx707
аа, да. Это я тестил VS CODE Спойлер: он даже это не подсветил
Алексей
Что-то на китайском. А этим не должен инстанс application отвечать? Или какой-нибудь WindowManager? Веусовщина, конечно
Jsx707
Я там вообще забил, потому что я просто тренировался с cmake. Так как движок считай у меня это просто набор бибилиотек, ну исключение это только Editor. То нужно будет учиться работать с cmake
Jsx707
Что-то на китайском. А этим не должен инстанс application отвечать? Или какой-нибудь WindowManager? Веусовщина, конечно
в пространстве имён Window будут также классы отвечающие за различные приблуды для окна типа кнопок, текстовых надписей и тд
Jsx707
Application :: Init тольтко сейчас просто обращается к оконному менеджеру, а так, он запускает все оснонвые компоненты.
Jsx707
А вообще это сделано на скоряк< я уже сказал почему
Алексей
Application :: Init тольтко сейчас просто обращается к оконному менеджеру, а так, он запускает все оснонвые компоненты.
Ну ладно) Я бы просто сделал класс Application, который в конструкторе или в том же init делал то же самое Ты же за ООП топишь)
Алексей
Окей, вопросов не имею
Сидредин
где вы храните информацию по изучаемым темам?
Сидредин
допустим, читаете такое. Куда и как это храните?
かたな
где вы храните информацию по изучаемым темам?
в файликах пишу конспекты obsidian позволяет сделать зеттелькастен удобно - из коробки граф предоставляет
Максим
Ребята, хочу спросить, а зачем вообще нужно private наследование?Просто у меня немного в голове не складывается:)
かたな
допустим, читаете такое. Куда и как это храните?
прочитал, попытался написать своими словами
Сидредин
в файликах пишу конспекты obsidian позволяет сделать зеттелькастен удобно - из коробки граф предоставляет
Спасибо, я тоже как раз его изучаю. Думал, может есть более специализированные приложения для хранения справочной информации
かたな
на обсидиан всякие плагинчики есть, тупа почти как иде))
Oleg
допустим, читаете такое. Куда и как это храните?
Екстримцоде видос на эту тему делал тоже. Рассматривал некий аналог известного Зеттелькастена
A.
кто нить юзал уже?
Ineffable
Кто удалил моё сообщение
Ineffable
Эх, Михаил, Михаил
Шурок
Эх, Михаил, Михаил
Но он ведь ничего не удалял
Ineffable
Всем привет, кто не знал, у нас также есть сервер в дискорде. Всех ждём - https://discord.gg/T38B6hF2 :)
Oleksii
кто нить юзал уже?
Сыроват пока
Алексей
Что это?
Михаил
Что это?
VSCodium с расширением clangd и темой MSVC под openSUSE Tumbleweed
Oleksii
VSCodium с расширением clangd и темой MSVC под openSUSE Tumbleweed
Звучит как коктейль в коротком намешано всякое
Oleksii
Так ещё и под понижение °
Михаил
Кен Кизи
Jsx707
А что там в сфмл?
Именно sfml здесь просто рисует окно. А так, мы имеем папку Core где по плану будут лежать ядро игры то есть менеджер окон, виртуальная фс, менеджер событий, загрузчики, анимации и ТД. И по сути это набор библиотек, которые можно прилинковать к чему угодно. Пока что там только оконный менеджер, и то с одной лишь реализованной функцией из всего пространства имён. В папке Include лежат заголовочные файлы, которые мы можем подключать через <> так как в CMakeLists.txt указана специальная директория где можно искать наши хедеры. Ну и собственно Application.hpp, Application.cpp, хедер Application.hpp мы не добавляем в папку include, это исключение, хотя его по сути могло и не быть, но та ладно). Там реализовано тоже пространство имён и класса для инициализации приложения, на данный момент он просто вызывает оконный менеджер
Михаил
Хинди
круто а ты на хинди сколько лет прогаешь
Azamat
кто нить юзал уже?
гов..кхм. Такое себе. ВС код намного лучше, не смотря на ранний доступ флита
Jsx707
Хинди
Урду
Azamat
гов..кхм. Такое себе. ВС код намного лучше, не смотря на ранний доступ флита
у меня не работал смарт мод, который, скорее всего, должен был помогать с автодополнением всяких функций/методов. А также он отказывался настраивать Интерпретатор python.
Jsx707
У тебя же есть SFML, CMake?
Jsx707
Кул
Если есть всё необходимое, то можешь собрать
Алексей
Aleksandr
Он вроде работает только когда открыт дев тул
Jsx707
Желательно Linux. Под Windows хз как будут обстоять дела. Но вроде тоже cmake правильно должен сгенерировать проект и vs всё соберёт
Михаил
Именно sfml здесь просто рисует окно. А так, мы имеем папку Core где по плану будут лежать ядро игры то есть менеджер окон, виртуальная фс, менеджер событий, загрузчики, анимации и ТД. И по сути это набор библиотек, которые можно прилинковать к чему угодно. Пока что там только оконный менеджер, и то с одной лишь реализованной функцией из всего пространства имён. В папке Include лежат заголовочные файлы, которые мы можем подключать через <> так как в CMakeLists.txt указана специальная директория где можно искать наши хедеры. Ну и собственно Application.hpp, Application.cpp, хедер Application.hpp мы не добавляем в папку include, это исключение, хотя его по сути могло и не быть, но та ладно). Там реализовано тоже пространство имён и класса для инициализации приложения, на данный момент он просто вызывает оконный менеджер
.hpp обычно содержит inline определения. Если нет, переименуй в .h inline это важная фича с++, позволяет в некоторых местах ускорить выполнение в 1.5 раза (самый яркий пример тому GLM)
Jsx707
Кстати при использовании Window.hpp можешь никаких параметров не указывать, они выставлены по умолчанию, поэтому в случае если ты никаких аргументов не передашь, создастся окно с настройками по умолчанию
Jsx707
Я кстати тоже так думал..... По сути может быть так принято в комьюнити, что .hpp должен иметь inline-определения
Jsx707
Там по сути вообще может не быть расширения
Jsx707
А препроцессору плевать что подключать
Михаил
Хмм... Хорошо
я тоже раньше не мог смириться с тем чт .h файлы не только Сишные.. но такие дела ;) в крайнем случае можно назвать .hh
Jsx707
я тоже раньше не мог смириться с тем чт .h файлы не только Сишные.. но такие дела ;) в крайнем случае можно назвать .hh
Я думаю, что грубо говоря это просто принято сообществом, что заголовочные файлы для Си имеют расширение .h, но по сути они могут иметь ведь любое расширение. Ибо препроцессор не проверяет расширение
Михаил
файлы inl же включаются в .hpp, а clangd ищет что включается в текущий файл.. Неизвестно вообще в какое место будет подключен inl, поэтому с подсветкой синтаксиса в inl проблемы
Andrii
Я кстати тоже так думал..... По сути может быть так принято в комьюнити, что .hpp должен иметь inline-определения
Ещё *.hh есть, есть и *.hxx, а вообще в С++ комьюнити ничего общепринятого нету, слишком уж там много разных комьюнити
Andrii
.hpp обычно содержит inline определения. Если нет, переименуй в .h inline это важная фича с++, позволяет в некоторых местах ускорить выполнение в 1.5 раза (самый яркий пример тому GLM)
Обычно это просто C++ хидер, который содержит и инлайны, и не инлайны и классы, и все что другие С++ хидера содержат Например, возьмём какой-нить hpp-файл из OpenCV: https://github.com/opencv/opencv/blob/5d292826b256dd60e73cba356f83573c1c3e0d03/modules/imgproc/include/opencv2/imgproc.hpp#L1255 Обычные объявления, никаких инлайнов
сережа
подскажите, пожалуйста, как в с++ можно сделать условие, альтернативное оператору in? условно, если символ находится в строке
сережа
if (container.count(elem) > 0) { }
ох, как просто оказалось, думал, можно как то find прицепить. Благодарю!
Andrii
подскажите, пожалуйста, как в с++ можно сделать условие, альтернативное оператору in? условно, если символ находится в строке
Смотря в какой строке, смотря какой символ... Ну вообще надо смотреть в направлении std::find
Andrii
if (container.count(elem) > 0) { }
error: ‘std::string’ {aka ‘class std::__cxx11::basic_string<char>’} has no member named ‘count’
Oleksii
Сырое*
А ещё у меня было ощущение, что закос под стиль мака. Прям ощущение такие же были
Andrii
ну мне для string'ов, a[i] in b
std::string s = "1234"; bool c = std::find(begin(s), end(s), '3') != end(s);
Agent_RBY_
А ещё у меня было ощущение, что закос под стиль мака. Прям ощущение такие же были
Там ещё новый интерфейс в Jetbrains'овские IDE завезли в бету. Почти один в один как VS Code)
Andrii
Тут другой вопрос, зачем это тебе? Если тут у тебя проблемы, то дальше будет ещё хуже...
SSS
кто нить юзал уже?
Ходят слухи что хуэта
Алексей
То есть мы создаём конструктор Application, который сразу всё запускает?
@vestre_neo Я не знаю, какая у тебя там архитектура, но опять же, посмотри как тот же Qt устроен. QApplication запускает основной цикл событий, который отвечает за обновление окон и виджетов. QApplication при инициализации настраивает окружение, подгружает плагины, настраивает локализацию, инициализирует классы для работы с файловой системой, получает информацию о доступных мониторах, их разрешении и dpi, чтобы потом подогнать размеры шрифтов и контролов и так далее А вот за ним уже создаются окна, виджеты и другие объекты, которые нуждаются в event loop И это во всяком случае очень хорошо вписывается в обычное человеческое представление об ООП и объекте в целом: объект Application можно представить как-то в уме и догадаться о его сфере ответственности. Объект же Init мне лично вообще не понятен. В таких языках как Пайтон и свифт и наверняка во многих других init - это название конструктора объекта) Еще Initialiser какой-нибудь - мб. Кто-то что что-то инициализирует. Что? Зачем? Не понятно) Название класса должно максимально описывать его назначение, а Initialiser - это очень широкое понятие. Вот например DatabaseInitialiser уже конкретнее. Если это фабрика, например. Но тогда я бы и сделал DatabaseFactory) Короче вот такие у меня рассуждения)
Agent_RBY_
кто нить юзал уже?
Я юзал, кста. Не очень. Сниппетов нет, некоторых Code Action тоже нет даже в смарт режиме. Жрёт супер дохера, как полноценная IDE. Из плюсов: красивый, быстро запускается и без смарт режима неплохой редактор кода, но не более
сережа
Тут другой вопрос, зачем это тебе? Если тут у тебя проблемы, то дальше будет ещё хуже...
я вообще олимпиадным программированием занимаюсь, мне особого понимания строения языка или каких углубленных моментов, вроде как, не особо надо. для решения вот оператор in часто напрашивается, а его, как оказалось, нет