Что случилось с C++ (clang и std)
Совместимость в си пошла лесом.Когда она там была?
ps
Всю жизнь совместимость в C/C++ достигалась потом и кровью с помощью толпы ручных ifdef-ов под конкретные особенности окружения (компилятора, библиотек, ос)
То есть, точно также как я собираю multilib, я должен одни и те же библиотеки собирать разными компилерами и хранить несколько версий одновременно?
я должен одни и те же библиотеки собирать разными компилерами и хранить несколько версий одновременно?Либо делать такой костыль, либо поправить исходники(попросить/заплатить разработчику чтобы он поправил): добавив ifdef для твоего окружения или переписав всё на единообразный рабочий вариант.
В смысле добавить ifdef? Судя по тому, что библиотеки собираются любым компилятором, он в них уже есть.
В смысле добавить ifdef?если используется C++14, то не использовать gets
Совместимость в си пошла лесом.очень сомневаюсь, скорее всего это баг
http://stackoverflow.com/questions/17775390/clang-3-3-in-c1y...
std::gets was deprecated in C++11 and removed from C++14функцию могут выбросить из формального стандарта, но не могут выкинуть из компилятора. ибо обратная совместимость - это конек сей
Всю жизнь совместимость в C/C++ достигалась потом и кровью с помощью толпы ручных ifdef-ов под конкретные особенности окружения (компилятора, библиотек, ос)обычно это не называют (обратной?) совместимостью, а называют портируемостью. для портирования действительно ifdef приходится использовать
обычно это не называют (обратной?) совместимостью, а называют портируемостьюСогласен. Но проблемы и методы решения у них схожие, да и в начальном посте слово "совместимость" скорее использовалось как синоним термина "портируемость".
Оставить комментарий
yroslavasako
Нашёл тут на просторах интернета проект, который для сборки требует шланг. Поставил его под генту. Проект отказался собираться с его помощью и выдал крайне странную ошибку:Что навевает мне следующие мысли:
1. Совместимость в си пошла лесом. Даже на уровне хедеров. То ли синтаксис меняется в деталях, то ли std уже не стандартное.
2. Шланг бомжует на чужом std
3. Проблемы совместимости усугубляются тем, что надо подбирать пару clang-gcc, потому что синтаксис зависит от первого, а std от второго.
Так ли всё плохо, как мне кажется?