История изменений
Исправление bugfixer, (текущая версия) :
Давайте еще раз
Мне таки надо дольше спать, и внимательней читать Ваши комментарии ;)
И в этом коде мне компилятор говорит, что в старом стандарте он не скомпилируется.
Если это действительно то что он делает, то я согласен - такой warning довольно бессмысленен. Изначально я исходил из того что разработчики clang более прагматичны и неправильно проинтерпретировал вот это:
Т.е. я компилируюсь именно в C++11, а меня предупреждают, что здесь у тебя несовместимость с С++98.
…
Конкретно с этим посылом:
имхо, было бы полезнее … Т.е. компилирую в C++98 и компилятор мне подсказывает, что со временем у меня будут проблемы (например, на использование имен auto_ptr или ключевых слов register и auto).
я согласен частично. Как по мне -так слом билда (что более новым, что старым компилятором) не так страшен. Гораздо опаснее hidden / silent изменения в поведении, причём далеко не всё можно предусмотреть / поймать юнит-тестами. Например что-то тяжелое было move-constructible, и вдруг перестало. И оно даже собирается и «работает», только медленней чем было. И хорошо если Вы это быстро заметите и оперативно поправите. Наверное люди вынужденные иметь дело с зоопарком компиляторов (а тем более - их не контролирующие) имеют мнение отличное от моего. Это я готов понять и принять.
ПыСы. На ещё более ранее:
Конкретно move() - видел.
Афигеть! И что этот move делал?
Это был метод custom legacy контейнера (похожего на std::vector<>, только хуже) который копировал элементы при capacity increase. Вы же никогда не просили чтобы оно было standalone function ;)
ПыПыСы. Кто-нибудь может мне объяснить как std::list::size() и std::list::splice() могут хотя-бы теоретически быть O(1) одновременно? cppreference.com врёт?
Исходная версия bugfixer, :
Давайте еще раз
Мне таки надо дольше спать и внимательней читать Ваши комментарии ;)
И в этом коде мне компилятор говорит, что в старом стандарте он не скомпилируется.
Если это действительно то что он делает, то я согласен - такой warning довольно бессмысленен. Изначально я исходил из того что разработчики clang более прагматичны и неправильно проинтерпретировал вот это:
Т.е. я компилируюсь именно в C++11, а меня предупреждают, что здесь у тебя несовместимость с С++98.
…
Конкретно с этим посылом:
имхо, было бы полезнее … Т.е. компилирую в C++98 и компилятор мне подсказывает, что со временем у меня будут проблемы (например, на использование имен auto_ptr или ключевых слов register и auto).
я согласен частично. Как по мне -так слом билда (что более новым, что старым компилятором) не так страшен. Гораздо опаснее hidden / silent изменения в поведении, причём далеко не всё можно предусмотреть / поймать юнит-тестами. Например что-то тяжелое было move-constructible, и вдруг перестало. И оно даже собирается и «работает», только медленней чем было. И хорошо если Вы это быстро заметите и оперативно поправите. Наверное люди вынужденные иметь дело с зоопарком компиляторов (а тем более - их не контролирующие) имеют мнение отличное от моего. Это я готов понять и принять.
ПыСы. На ещё более ранее:
Конкретно move() - видел.
Афигеть! И что этот move делал?
Это был метод custom legacy контейнера (похожего на std::vector<>, только хуже) который копировал элементы при capacity increase. Вы же никогда не просили чтобы оно было standalone function ;)
ПыПыСы. Кто-нибудь может мне объяснить как std::list::size() и std::list::splice() могут хотя-бы теоретически быть O(1) одновременно? cppreference.com врёт?