а не, скажем, 1_p? Вопрос навеян выходом boost lambda2
Потому что 1_p - невалидный идентификатор
Это будет объект некого типа, такого же, какой _1 , разве нет?
1_p - не идентификатор. _1 - идентификатор
Я про пользовательские литералы
Наплевать, что это будет за объект или даже тип
Если здесь подразумевается 1 с user defined литералом _p, то есть проблема - 1_p и 2_p будут иметь одинаковый тип. По крайней мере в те времена, когда это вводилось, нельзя было сгенерировать разные типы. В отличие от _1, _2, которые имеют разные типы
Пользовательские литералы - это строки с суффиксом.
Числа тоже могут быть
Но boost lambda требует 14 стандарта, а там уже вроде можно определить шаблонный пользовательский литерал, и отдать тип нужный
Так мы говорим про std'шные, которые ввели в C++11.
Из вроде в 11 ввели, в 11 тоже кажется можно. Я сейчас решил пощупать boost lambda и удивился что там так не сделали, у них же свои плейсхолдеры
А зачем в 17ом boost lambda?
Не знаю.. может чтобы не писать все время синтаксис лямбды
Разобрался вроде: с шаблоном можно определить только с char… а оно потом плохо конвертируется в int
Обсуждают сегодня