Войти
ФлеймФорумПрограммирование

[C++] Эту функцию нельзя вызвать?[решено] (2 стр)

Страницы: 1 2 3 Следующая »
#15
21:51, 8 фев. 2015

Adler
шланг, гцц и ицц отказываются компилять, так что это опять самодеятельность говностудии.


#16
22:03, 8 фев. 2015

Hardcode
> шланг, гцц и ицц отказываются компилять, так что это опять самодеятельность
> говностудии.

Я бы не использовал префикс "говно" в отношении компилятора,
который из всех перечисленных более менее дружит со здравым смыслом.

#17
22:07, 8 фев. 2015

Kartonagnick
Штоа? Он тормозной, бажный, не соответствует даже 2003 стандарту, а поддержка 11 будет допилена примерно никогда.

#18
22:10, 8 фев. 2015

Hardcode
> Штоа? Он тормозной, бажный, не соответствует даже 2003 стандарту, а поддержка
> 11 будет допилена примерно никогда.

Насчет скорости - не замечал никогда особых различий.

(напротив,  при компиляции большого количества ядренных шаблонов, мне показалось студия компилит быстрее, чем mingw )

Баги есть и у гцц, и жить это особо никому не мешает.

По поводу стандарта - не нужно путать "расширения компилятора" с "нестандартным поведением".
cl прекрасно компилит код, который написан по стандарту.

Другое дело, что он не требует от пользователя обязательно следовать стандарту даже там, где это явно противоречит здравому смыслу.


По поводу поддержки компилятора:

Вроде как мелкомягкие объявили полную поддержку с++11 для 2013 студии.

#19
23:02, 8 фев. 2015

Kartonagnick
> Другое дело, что он не требует от пользователя обязательно следовать стандарту
> даже там, где это явно противоречит здравому смыслу.
Удачного портирования потом, лол.
Kartonagnick
> Вроде как мелкомягкие объявили полную поддержку с++11 для 2013 студии.
НетЪ. Мы юзаем на работе этот кусок говна, оно не умеет в инициализацию мемберов при объявлении.

#20
23:28, 8 фев. 2015

Hardcode
> Удачного портирования потом, лол.

Я заметил, лолкают в основном люди которые либо просто не в теме, либо просто недалекие.

Во-первых, расширения можно отключить (вроде бы. Я сам не отключал).

А во-вторых, кроссплатформа доставляет далеко не синтаксисом горячо любимого пись-пись.
Это то как раз таки не самая большая проблема, и синтаксис легко поправляется.
А именно что разными нюансами самих платформ.

Что бы задним числом за голову не хвататься,
я сижу одновременно:  в эклипсе (gcc), QtCreator (gcc/mingw), Visual Studio 2012-2013 (cl ноябрьский).

#21
23:28, 8 фев. 2015

Hardcode
> НетЪ. Мы юзаем на работе этот кусок говна, оно не умеет в инициализацию
> мемберов при объявлении.

Компилятор обновить не пробовали?

#22
0:04, 9 фев. 2015

Kartonagnick
> Компилятор обновить не пробовали?
Предпоследний Preview 2015 забагован как черт знает что.
OOLua не компилит, слишком сложные макросы
LuaBind не компилит, слишком длинное имя у функтора
И даже у меня в проге эта тварь при включенной оптимизации в некоторых местах вырезает обработку исключений, из-за чего прога, полностью обмазанная try/catch, валится на необработанном исключении.

#23
0:27, 9 фев. 2015

-Eugene-
> OOLua не компилит, слишком сложные макросы
> LuaBind не компилит, слишком длинное имя у функтора

Не знаю что вы подразумеваете под "слишком сложными макросами".

Однако, где-где, а на макросах ни разу никаких проблем не было.
И вряд ли oolua сложнее, чем boost.preprocessor.

Включая телепатию, могу предположить что проблема может быть не с макросами, а с кодом, который под макросами.
Какие то фичи с++1y, которые она не поддерживает.
Тут нужно смотреть код, и ошибки компилятора.

-Eugene-
> LuaBind не компилит, слишком длинное имя у функтора

Аналогично.


-Eugene-
> И даже у меня в проге эта тварь при включенной оптимизации в некоторых местах
> вырезает обработку исключений, из-за чего прога, полностью обмазанная
> try/catch, валится на необработанном исключении.

А вот такие вещи мне сильно напоминают: сам накосячил, а компилятор виноват.

#24
0:35, 9 фев. 2015

Kartonagnick
> Не знаю что вы подразумеваете под "слишком сложными макросами"
Ошибку студии, в которой это говорится прямым текстом.

> А вот такие вещи мне сильно напоминают: сам накосячил, а компилятор виноват.
Как, например? Хоть одну идею, как?

#25
1:08, 9 фев. 2015

-Eugene-
> Ошибку студии, в которой это говорится прямым текстом.

"ошибка студии". Чо как маленький?

Во-первых не студии, а препроцессора.
(или все таки компилятора?)

А во-вторых остановок "тута" и "здеся" не существует.

Покажите минимальный код демонстрирующий ошибку, и выхлоп компилятора.

-Eugene-
> Как, например? Хоть одну идею, как?

Я что по вашему, телепат что ли?
Я понятия не имею, что у вас там за код.

Вы утверждаете, будто бы компилятор не то соптимизировал, из-за чего выпилил работу с исключениями.

Если вы точно это знаете, значит вы можете представить код-иллюстрацию этого некорректного поведения.
Если вы не можете воспроизвести ошибку, значит вы не знаете настоящих причин.

В этом случае нужно разбираться что не так с вашим кодом,
а не делать выводов из одних лишь ничем не обоснованных предположений.
С высокой(!) степенью вероятности косяк в вашем коде, а не в компиляторе.

#26
1:20, 9 фев. 2015

Kartonagnick
> Покажите минимальный код демонстрирующий ошибку, и выхлоп компилятора.
Мне совсем не хочется качать заново OOLua, потом подгонять нужную версию Lua, потом собирать все это, только ради того чтобы откопать этот баг.
Компилишь любой пример - и половина макросов дохнет.

> В этом случае нужно разбираться что не так с вашим кодом,
Прямо сейчас. Решил добить это дерьмо. Упрощаю код, пытаясь сохранить баг.

> С высокой(!) степенью вероятности косяк в вашем коде, а не в компиляторе.
О да, багов компилятора не существует.

Знаешь, как сложно ловить баг после работы оптимизатора? Работоспособность меняется вместе с фазой луны.
У меня сейчас два идентичных класса. Один падает, другой - нет.

#27
1:47, 9 фев. 2015

-Eugene-
> Мне совсем не хочется качать заново OOLua, потом подгонять нужную версию Lua,
> потом собирать все это, только ради того чтобы откопать этот баг.
> Компилишь любой пример - и половина макросов дохнет.

Ну хорошо. Это можно взять на заметку, но не на веру.
Так то я ни разу даже не слышал о случаях поломок связанных с препроцессором.

-Eugene-
> Прямо сейчас. Решил добить это дерьмо. Упрощаю код, пытаясь сохранить баг.

Ну вот когда воспроизведете, вот тогда и можно уже будет говорить.
А пока это лишь ваши домыслы.

-Eugene-
> О да, багов компилятора не существует.

Нет, почему же. Их не так уж и мало, причем и у cl, и у gcc, и у прочих.

Другое дело, что статистически они редки по сравнению с багами в бизнес-коде.
Это при том, что большая их часть ломает компиляцию(или компилятор).

А вот такие, в результате которых программа была успешно скомпилирована,
но работает не правильно - можно пересчитать по пальцам.

По своему опыту я могу сказать, что большинство случаев:  "компилятор работает не правильно!!!",
заканчивались обнаружением глупых ошибок в коде бизнес-приложения.

Имхо, подобные заявления без реального обоснования вообще не стоит рассматривать всерьёз.

-Eugene-
> Знаешь, как сложно ловить баг после работы оптимизатора?

Знаю, тем не менее пока не удастся локализировать проблему, заявлять что либо преждевременно.

У меня был случай на практике.

Релизная сборка  gcc. В дебаге все ок, в релизе поведение в некоторых (причем не критичных) местах было некорректным.
Приложение успешно работало, но местами вело себя не так, как должно было бы.

Нам так и не удалось установить точную причину неполадки.
Некоторые переменные, чьи значения теоретически могли повлиять мы пометили volatile.
Этот квалификатор запрещает оптимизировать использование переменных.
После этого релиз заработал как часики.

Однако, тем не менее, я не могу авторитетно заявить, что поломка была следствием некорректного поведения компилятора.
Потому что мы не установили точную причину поломки.
Не смогли воспроизвести поломку на примере-иллюстрации.

Вполне возможно, что где-то в коде имело место быть UB, или что-то в таком духе.

Голословные выкрики: "а у меня оптимизация все ломает, значит компилятор виноват" - это не серьёзно.

#28
1:53, 9 фев. 2015

Kartonagnick
Все! Я создал минимально рабочий пример, который падает с необработанным исключением
Если есть последний Preview, проверь, пожалуйста. Забавно будет, если я воспроизвел уже пофикшенный баг.
Или это я что-то не знаю о виртуальном наследовании? Без него все хорошо. Я убрал бесполезное виртуальное наследование и все работает прекрасно.

+ Показать

Правка: поправил малость

#29
3:23, 9 фев. 2015

-Eugene-
> Все! Я создал минимально рабочий пример, который падает с необработанным
> исключением

Какие у вас ключи компиляции выставлены, это я конечно сам догадаться должен? Я типе телепат?

У меня ошибка не воспроизводится.

Страницы: 1 2 3 Следующая »
ФлеймФорумПрограммирование

Тема в архиве.