вам пару любопытных вещей из секции посвященной декларации покажу:
1) На сколько я могу судить код
int f(), g();
абсолютно корректен и объявляет две функции возвращающие int.
2) В драфте стандарта уже есть возможность передавать this явно. Кажется это предлагали для того чтобы иметь возможность не дублировать код в методах у которых должны быть почти одинаковые реализации const и non-const, но я не следил за судьбой этого пейпера.
Упомянутая бумага принята в C++23, сама по себе, она позволяет намного больше, чем просто избавление от дублирования – и рекурсивные лямбды, и продвинутое CRTP, и более эффективная передача this по значению для маленьких объектов, адрес от таких методов представляет из себя обычный указатель на функцию, с чем обычно удобнее работать, чем с указателем на метод
А по поводу первого – можно ведь пойти и дальше: using f = int(); f a, b, c;
Для пустых объектов это совершенно бесполезно. Разница будет только в случае, когда в методе доступ к полям, и они помещаются в регистр
Вообще, это звучит как слом ABI
какой слом то, это ж не на старую реализацию повлияет, а на новый код
Автор бумаги предлагает рассмотреть пример string_view – обычно лучшей практикой является приём по значению, но это невозможно в случае с методами
Дело в том, что эти методы – скорее функции, чем методы. А принимать аргументы по значению в функции мы уже умеем
Автору надо предложить с VC++ ABI ознакомиться)
Я не знаток ABI разных платформ, но мне кажется странным брать в пример одну единственную платформу в вопросе развития всего языка
Как там у vc с лупхолами?
А причем тут ABI?
У большой тройки компиляторов лупхолы работают начиная с C++11. Только ICC не может в type mapping в C++11. Правда, совершенно непонятно, к чему этот вопрос
Мне грустно что принятие этого костыля косвенно говорит о том что uniform call syntax похоронили. По сути это специальный синтаксис для friend function, которая вызывается через синтаксис вызова метода. По моему мнению это одно из самых костыльных решений.
Полагаю, uniform call syntax похоронили задолго до этой бумаги
Обсуждают сегодня