плюсов выглядит поопрятнее в некоторых примерах(тот же пример из растбука с вектором получается короче и читабельнее, хотя там свои приколы).
Ну плюсовый дефайн быстро каким-то монстром становится, если ты например хочешь цикл сделать
да? как выглядит пример с вектором в крестах?
Потому что define это тупая текстовая подстановка, которая ничерта не умеет. Тем более что это ни разу не "макросы плюсов", это препроцессор.
define это рудимент си, не стоит даже вспоминать о подобном. И да, это просто подстановка текста
Можно пример какого-нибудь макроса, который нельзя написать с define, но можно с macro_rules?
эм... да практически любой макрос сложнее подстановки константы. проблема в том что препроцессор плюсов ничего не знает о самих плюсах. то есть макросы никак не проверяются на синтаксическую корректность. кроме того он еще и ничего не знает об областях видимости, поэтому не забываем щедро обмазывать макросы скобочками.
Вот тот же vec! макрос напиши
#define VEC(T, ...) std::vector<T>{VA_ARGS} Вроде так можно сделать пример из растбука, если сначала создавать вектор, а потом пушить элементы будет конечно уже сложнее
Так не получится сделать VEC(1; 100)
Вроде да
задача понимания того что здесь не так оставляется как упражнение для читателя
Vec![1,2,3];
Обсуждают сегодня