История изменений
Исправление legolegs, (текущая версия) :
Да, всё так. Энджой ёр Си. В документации на апи сказано передать enum, а юзер сложил какую-то фигню и получил не то, что хотел, но то что написал. Можно ещё вписать константу из другого енума[1]. Можно ещё не знать чем три режима отличаются и написать от балды. От этого защиты нет.
Мой пойнт в том, что чтобы совершать такую ошибку надо уж совсем ступить, ибо документация будет предельно проста: сказано enum такой-то, значит брать значения из него и точка. А в варианте с флагами всякие тонкости придётся разжёвывать. А и коде библиотеки тонкости имплементировать.
[1] - Кулстори: в jagged alliance 2 есть баг с характером персонажа из-за того, что игромеханические енумы были перепутаны с соответствующими им, но не равными гуёвыми
Исправление legolegs, :
Да, всё так. Энджой ёр Си. В документации на апи сказано передать enum, а юзер сложил какую-то фигню и получил не то, что хотел, но то что написал. Можно ещё вписать константу из другого енума[1]. Можно ещё не знать чем три режима отличаются и написать от балды. От этого защиты нет.
[1] - Кулстори: в jagged alliance 2 есть баг с характером персонажа из-за того, что игромеханические енумы были перепутаны с соответствующими им, но не равными гуёвыми
Исходная версия legolegs, :
Да, всё так. Энджой ёр Си. В документации на апи сказано передать enum, а юзер сложил какую-то фигню и получил не то, что хотел, но то что написал. Можно ещё вписать константу из другого енума[1]. Можно ещё не знать чем три режима отличаются и написать от балды. От этого защиты нет.
[1] - Кулстори: в jagged alliance 2 есть баг с характером персонажа из-за того, что игромеханические енумы были перепутаны с соответствующими их но не равными гуёвыми