procxx | Unsorted

Telegram-канал procxx - pro.cxx

7838

C++ chat 0. Простые вопросы, лабы и о IDE — в чат новичков @supapro 1. No Ads, offtop, flood 2. Полные правила тут https://t.me/ProCxx/259155 Объявления о вакансиях,эвентах - в лс @AlexFails или @MasterZiV канал вакансий https://t.me/ProCxxJobs

Subscribe to a channel

pro.cxx

Тсс..
Админ выше когти точит!

Читать полностью…

pro.cxx

Пока ты думаешь, что понял C++, C++ понял тебя 😎

Читать полностью…

pro.cxx

настала пора контрибьютить в классный проект

Читать полностью…

pro.cxx

Вот завтра и спрашивай

Читать полностью…

pro.cxx

Завтра могу прикрепить исходники

Читать полностью…

pro.cxx

Здравствуйте уважаемые сеньоры плюсов

Читать полностью…

pro.cxx

Не, сорри, вроде я рано отчаялся.
Вроде можно сделать, если в структуре Foo методы определить Статик шаблонами от data_
Тогда их можно кодогенерировать от разных типов data_
Ура c++!

Читать полностью…

pro.cxx

В имеющейся реализации действительно "говно мамонта родом из C".
Ни два ни полтора.

Читать полностью…

pro.cxx

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

Читать полностью…

pro.cxx

Текущий вид рефлексии как будто только для перекладывания жсонов годится

Читать полностью…

pro.cxx

Все. Тупик. Я в печали от этой вашей рефлексии.
У меня есть объект
struct Foo
{
std::string data_;
void SetData(..);
const std::string& GetData() const;
}
У меня есть tuple с указателями на методы Foo описывающие его интерфейс.
А теперь я хочу сделать объект
struct FooRef
{
std::string& data_;
? те же методы
}
или
struct FooConstRef
{
const std::sting& data_;
? только const методы
}
Для оригинального Foo у меня есть все. Я могу отфильтровать tuple только на константные методы.
Я могу поменять тип класса в tuple на FooRef или FooConstRef.
Но!
Я не могу заставить компилятор сделать эти новые методы и получить их указатели!
Даже с рефлексией!
И что?
Остаётся только тупая внешняя кодогенерации.
Кодогенерации рулит!
Мы пришли к тому что имели и боялись признать - c++ без кодогенерации ущербен и никакая рефлексия этой проблемы не исправит.

Читать полностью…

pro.cxx

 gdb --version
Python path configuration:
PYTHONHOME = 'C:/Python39'
PYTHONPATH = (not set)
program name = 'C:/msys64/mingw64/bin/python.exe'
isolated = 0
environment = 1
user site = 1
safe_path = 0
import site = 1
is in build tree = 0
stdlib dir = 'C:/Python39/lib/python3.12'
sys._base_executable = 'C:/msys64/mingw64/bin/python.exe'
sys.base_prefix = 'C:/Python39'
sys.base_exec_prefix = 'C:/Python39'
sys.platlibdir = 'lib'
sys.executable = 'C:/msys64/mingw64/bin/python.exe'
sys.prefix = 'C:/Python39'
sys.exec_prefix = 'C:/Python39'
sys.path = [
'C:/Python39/lib/python312.zip',
'C:/Python39/lib/python3.12',
'C:/Python39/lib/python3.12/lib-dynload',
]
Python initialization failed: failed to get the Python codec of the filesystem encoding
C:\msys64\mingw64\bin\gdb.exe: warning: Python failed to initialize with PYTHONHOME set. Maybe beca
use it is set incorrectly? Maybe because it points to incompatible standard libraries? Consider chan
ging or unsetting it, or ignoring it using "set python ignore-environment on" at early initializatio
n.
GNU gdb (GDB) 16.3
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html&gt;
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Читать полностью…

pro.cxx

Попробовал, говорит не умеет.

./0c46a68d-88f8-46df-9058-f57cbd71d3d8.dmp" is not a core dump: file format not recog
nized

Читать полностью…

pro.cxx

GDB умеет виндоый дамп смотреть?

Читать полностью…

pro.cxx

Нет, выше написали про gdb

Читать полностью…

pro.cxx

В Советской России не ты кодишь на C++, а C++ кодит тебя

Читать полностью…

pro.cxx

действовал по комиксу из xkcd как выучить плюсы за 21 день?

Читать полностью…

pro.cxx

Да не.
Все нормально.
Я ошибся.
Но в конце концов я понял c++ как язык программирования.
Долгое время я его считал не языком, а "инструкцией по эксплуатации компилятора".
Все дело в том, что я не мог догнать, что такое шаблоны.
С поверхностного взгляда это и не данные, и не методы, а непонятно что - скрипты кодогенерации.
Но теперь я понял, что именно шаблоны делают c++ полноценным языком программирования.
Именно благодаря шаблонам я могу оперировать методами, как полноценными объектами первого рода.
Я могу их создавать:
- Пусть Foo - это класс, тогда
Foo* pf = new Foo();
это создание элемента данных.
- Пусть Bar<typename> - это шаблон пункции, тогда
auto* pb = /*new"/ Bar<int> - это создание метода.
Материализация его при компиляции.
И логика та же и синтаксис похожий.

Короче.
Я понял c++.
Классный язык.

Читать полностью…

pro.cxx

Ну кодогенерация по мощности слегка мощнее рефлексии потому что рефлексия способна обрабатывать лишь то что уже есть в программе а кодогенерация генерирует даже то чего ещё там нет поэтому ты сравниваешь некорректно .

Читать полностью…

pro.cxx

Ребят, кто то может помочь, такая проблемка, пул алокатор мой работает с glibc malloc а с jemalloc - segfault

Читать полностью…

pro.cxx

Кодогенерация очень неудобна, когда потенциально хост != таргет, ибо компилить тогда приходится дважды

Читать полностью…

pro.cxx

никакой другой реализации нет и не будет. Оно существует в плюсах только для совместимости с C

Читать полностью…

pro.cxx

макросы это говно мамонта, от которого надо избавляться

Читать полностью…

pro.cxx

Вот именно моё имхо - отказываться от идеи кодогенерации нельзя!
Кодогенерации - это нормально и приемлемо там где она просится.
Рефлексия ее никогда не заменит.

Читать полностью…

pro.cxx

скорее рефлексия такая себе получилась, а не кодген нужен

Читать полностью…

pro.cxx

Software Protection

Там не только пакер

Читать полностью…

pro.cxx

https://github.com/ssbssa/gdb этот запускаете или штатный?

Читать полностью…

pro.cxx

Ну тот что в комплекте mingw должен, там же код собирается gcc

Читать полностью…

pro.cxx

он тут ни при чем, mingw

Читать полностью…

pro.cxx

С использованием mingw?

Читать полностью…
Subscribe to a channel