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