Я пытаюсь использовать сторонний SDK в коде C ++.Хотя SDK и заголовки технически совместимы с C ++, на самом деле это просто отвратительный кусок C.
В частности, в основных заголовочных файлах есть много сотен # определений, из которых они худшие.
#define C 0 //Celsius
#define F 1 //Fahrenheit
#define R 2 // Rankine
#define K 3 // Kelvin
Теперь вы можете себе представить, какие приятные сообщения об ошибках я получаю, когда пытаюсь использовать библиотеки повышения, в которых есть такие вещи:
template< typename F > struct template_arity;
Несколько тактических #undefs могли бы что-то исправить, но это все равноощущается как бомбаВ качестве альтернативы я мог бы переписать большие части стороннего заголовка или просто попытаться выделить те разделы, которые мне действительно нужны.
Есть ли лучшее решение этой проблемы?