История изменений
Исправление a--, (текущая версия) :
Нет, partial specialization это не только для макросов. У тебя есть функция от 2 аргументов, f(x,y) и тебе в рантайме стало известно, что второй аргумент допустим будет 8. Тебе прямо в рантайме нужна оптимизированная функция g(x)=f(x,8). При этом функция f была написана именно как функция, а не макрос — поскольку это компилятор должен подстраиваться под наши хотелки, а не мы под него!
UPDATE: При этом можно иметь в рантайме исходный код f и кусочки другой инфы о ней, но не весь исходный код твоего проекта.
UPDATE2: понятно, что на этапе компиляции мы можем сказать «вот эти функции может потребоваться специализировать в рантайме, а вот эти — точно нет, не трать на них время».
Исправление a--, :
Нет, partial specialization это не только для макросов. У тебя есть функция от 2 аргументов, f(x,y) и тебе в рантайме стало известно, что второй аргумент допустим будет 8. Тебе прямо в рантайме нужна оптимизированная функция g(x)=f(x,8). При этом функция f была написана именно как функция, а не макрос — поскольку это компилятор должен подстраиваться под наши хотелки, а не мы под него!
UPDATE: При этом можно иметь в рантайме исходный код f и кусочки другой инфы о ней, но не весь исходный код твоего проекта.
Исправление a--, :
Нет, partial specialization это не только для макросов. У тебя есть функция от 2 аргументов, f(x,y) и тебе в рантайме стало известно, что второй аргумент допустим будет 8. Тебе прямо в рантайме нужна оптимизированная функция g(x)=f(x,8). При этом функция f была написана именно как функция, а не макрос.
UPDATE: При этом можно иметь в рантайме исходный код f и кусочки другой инфы о ней, но не весь исходный код твоего проекта.
Исходная версия a--, :
Нет, partial specialization это не только для макросов. У тебя есть функция от 2 аргументов, f(x,y) и тебе в рантайме стало известно, что второй аргумент допустим будет 8. Тебе прямо в рантайме нужна оптимизированная функция g(x)=f(x,8). При этом функция f была написана именно как функция, а не макрос.