Я знаю, что добавление статической
функции-члена - это нормально, но как насчет перечисления
определение? Никаких новых элементов данных, только определение.
Немного предыстории:
Мне нужно добавить статическую
функцию-член (в классе), которая распознает (функцию) версию IP-адреса
по его строковое представление. Первое, что приходит мне в голову, - объявить enum
для IPv4
, IPv6
и Unknown
и сделать это enum
код возврата моей функции.
Но я не хочу нарушать бинарную обратную совместимость.
И действительно плохой вопрос (для SO) - есть ли здесь какой-либо источник или вопрос, я могу прочитать об этом больше? Я имею в виду - что нарушает бинарную совместимость, а что - нет. Или это зависит от многих вещей (например, архитектуры, ОС, компилятора ..)?
РЕДАКТИРОВАТЬ : Относительно комментария @PeteKirkham: Хорошо, по крайней мере - есть ли способ проверить / проверить изменения ABI или лучше опубликовать новый вопрос об этом?
EDIT2 : Я только что нашел SO Вопрос: Инструмент статического анализа для обнаружения разрывов ABI в C ++ . Я думаю, что это как-то связано здесь и отвечает на часть об инструменте для проверки двоичной совместимости.Вот почему я рассказываю об этом здесь.