Информация об изменениях

Сообщение Re[3]: Константность аргументов в функции от 07.03.2019 15:15

Изменено 07.03.2019 15:38 rg45

Re[3]: Константность аргументов в функции
Здравствуйте, koenjihyakkei, Вы писали:

K>Такой вариант тоже рассматривал, но тут не нравится, что сигнатура фнукции не видна.


Сигнатуру функции можно зафиксировать при помощи SFINAE.

K>Кстати а в плане перфоманса есть отличие в передаче указателя на функцию и использования шаблонной?


Если оставить за скобками возможности оптимизации, то использование функционального объекта предпочтительнее, поскольку использование указателя на функцию — это дополнительная косвенность и адрес вызова вычисляется во время выполнения, а не во время компиляции.

K>С учетом того, что туда почти всегда будет лямбда передаваться.


Принимая указатель на функцию, ты сможешь передавать только простейшие лямбды, не использующие биндинг. И вообще, указатели на функции для С++ противоестественны, ИМХО.
Re[3]: Константность аргументов в функции
Здравствуйте, koenjihyakkei, Вы писали:

K>Такой вариант тоже рассматривал, но тут не нравится, что сигнатура фнукции не видна.


Сигнатуру функции можно зафиксировать при помощи SFINAE.

K>Кстати а в плане перфоманса есть отличие в передаче указателя на функцию и использования шаблонной?


Если оставить за скобками возможности оптимизации, то использование функционального объекта предпочтительнее, поскольку использование указателя на функцию — это дополнительная косвенность и адрес вызова вычисляется во время выполнения, а не во время компиляции.

K>С учетом того, что туда почти всегда будет лямбда передаваться.


Принимая указатель на функцию, ты сможешь передавать только простейшие лямбды, не использующие захват контекста. И вообще, указатели на функции для С++ противоестественны, ИМХО.