Добрый день!
Подскажите пожалуйста, как в дефайне к символу присоединить апострофы по бокам?
Код
#define ioc(x) _ioc(x,y,z)
#define _ioc(x,y,z) '##x##',y, '##z##'
#define ChipSel1 А, 7, L
#include "ascold.h"
Pin<ioc(ChipSel1)> CS1; // Error[Pe026]: too many characters in character constant
Нужно это все чтобы скрестить известный набор макросов для дрыгания ногами ascold.h с шаблоном С++, предназначенным для той-же цели.
Код
template<char port, char bit, char activestate>
class Pin
{...}
Проблема в том, что макросы Аскольда подставляют голые символы в нужное место, а шаблоны Си++ используют типизированные константы, и мне хотелось бы с помощью макроса преобразовать Аскольдовское объявление пина в совместимое с шаблоном, поставив по краям к буковкам апострофы. Но компилятор ругается...
А вообще все это нужно чтобы я мог один раз объявив расположение ног в отдельном заголовочнике, затем использовать их и в сишных и в С++-ных частях программы, не заморачиваясь. Да и вообще для совместимости новых версий со старыми.