Я пишу код, который использует шаблоны для поддержки типов данных int и char *. скажем
struct node {
KeyType key;
struct node *next;
};
И это отсортированный узел связанного списка, поэтому всякий раз, когда я вставляю узел, я должен сравнивать. Для этого я создал один заголовочный файл comparison.h
, в котором я определил операцию сравнения, такую как
LT(a,b)..
GT(a,b)..
И когда я использую node<int>
, я определяю LT(a, b) as a<b
, а в случае node<char*> strncmp(a, b, SIZE)
(используя макрос, я переключаю определение)
Так есть ли способ, которым я минимально вмешиваюсь в это comparison.h
. Какими должны быть лучшие способы использования сравнения или конкретных операций, характерных для типов данных, при использовании шаблонов?