У меня есть функция op
, и я бы хотел специализироваться на всех случаях, где параметр шаблона PROCESSOR::DIMENSION = 2
. Возможно ли это вообще или как я могу достичь чего-то подобного?Специализированный шаблон функции по статическому значению в классе параметра шаблона
// How to specialize this for all PROCESSOR with DIMENSION = 2?
template <class PROCESSOR>
void op(Node<PROCESSOR>& node){
}
// this is an example for template parameter PROCESSOR
template <int DIM>
class CPU
{
public:
static int DIMENSION = DIM;
};
(Если вы подозреваете XY вопрос, вы можете быть правы. У меня есть довольно сложная задача проектирования здесь, и я оценить различные идеи, как это сделать. Один из них приводит к вышеупомянутому X. В частности, я стараюсь избегать полиморфных указателей, поскольку они не позволят компилятору встраиваться, и мы говорим о очень маленьких фрагментах кода для высокопроизводительного приложения.)
Является ли ПРОЦЕССОР и ЦП одинаковым? если это так, пожалуйста, исправьте свой вопрос! – Klaus
ЦП может использоваться как параметр шаблона PROCESSOR, например: 'op> (n)'. –
Michael
Не волнуйся, похоже, разумный вопрос. –