Pull to refresh
-4

Разработчик С++, Qt

0,1
Rating
Send message

Поздравляю команду PVS-Studio с этим достижением, это очень значимое событие

clangd 21 уже хорошо справляется с этим, а поддержка включена с 19 c использованием опции --experimental-modules-support

Вывод таков. Что переходим на модули, так как они сильно сокращают размер бинарей, за счет того что к нам не тащится из include вся стандартная бибиблотека. Плюс системы сборки уже в достаточной мере стали поддерживать модули

Если include iosream заменить на import std;

import std;

int main(){

std::cout << "Hello World" << std::endl;

return 0;

}

g++16 -std=c++23 -fmodules --compile-std-module main.cpp

Сгенерированый бинарник весит всего 16,5 кб

Показываю пример на gcc16 так как только с этой версии появилась удобная опция

для подключения import std; ( До этого делается чуть сложнее но резлуьтта должен быть таким же)

Если заменить на std::println то размер бинарника составляет ~241КБ

Но это и логично так как тащится уже и std::format и к нему еще сверху

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

ага при этом буст в псоледних версиях прекратил поддержку С++03

Надеюсь мне не доведется пользоваться ваши продуктом, написаным с помощью ии

в gcc 16 все еще не полная поддержка с++20 как и в clang 19. Модули еще допиливаются

Будет ли внедрена работа с С++26 рефлексией или пока слишком рано ее использовать в userver (через два три года только стоит ожидать) ?

Классный проект, как показатель того что С++ слишком рано хоронить. Респект

gcc в текущей мастер ветке уже поддерживает и контракты и рефлексию. В релизе 16 gcc это все будет

Из перечисленных в опроснике проблем, часть проблем базово уже решена, остался только тяжелый переход. Если мы говорим о макросах и #include то С++20 модули, системы сборки научились работать с модулями, остался просто переход на модульную систему ( а это не быстро). Если мы говорим о сложности в метапрограммировании то она есть только на стандартах до с++17, после стало все гораздо лучше особенно с приходом с++20 (SFINAE мертво так как есть концепты). Если говорим уже о UB - то с++26 убирает часть UB. Сложность многопоточки решается больше уже поддержкой сообщества с появлением более удобных библиотек. Так что С++ решает свои болячки но не так быстро как хотелось бы

Ну базовая рефлексия уже есть в С++26. Остался только token injection для полного счастья

c++26 и теперь есть нормальные контракты

Information

Rating
4,020-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Десктоп разработчик
Старший
ООП
Linux