Comments 35
Весьма полезная информация. Спасибо.
А как эта штука реагирует на остальные ошибки, не связанные с шаблонами? Вы проводили более масштабное тестирование, если можно так выразиться?
А как эта штука реагирует на остальные ошибки, не связанные с шаблонами? Вы проводили более масштабное тестирование, если можно так выразиться?
Увы, на остальные ошибки она забивает. Каких вам еще ошибок не хватает? Вот мне бы очень бы понравилась иная обработка ошибки «отсутствие точки с запятой в конце определения класса».
А этот скриптик просто сворачивает на место typedef'ы и убирает лишние параметры шаблонов.
А этот скриптик просто сворачивает на место typedef'ы и убирает лишние параметры шаблонов.
Можно ли его использовать для фильтрации вывода компилятора таким образом: "g++ testmap.cpp | gfilt"?
Я спрашивал подовляет она или не изменяет другие ошибки? например про точки с запятой. Если нет то, хорошо. А вообще, сдается мне, что «лишних параметров шаблонов» не бывает ;)
Давно ждал что-то подобное, а написать руки не дошли. Спасибо.
Мелочь, но приятно :) Спасибо
По мойму, костыль этот проблему не решает, а добавляет еще кучу, надо сначала через gfilt запускать компилирование, а потом если не получилось, запускать gcc заново, смотреть другой отчет об ошибках? А ошибки в шаблонах так и не научились ловить во время компиляции?
Вы, похоже, не выспались.
> потом если не получилось, запускать gcc заново
что не получилось или может не получиться? gcc и так запускается, парсится только вывод об ошибках.
> А ошибки в шаблонах так и не научились ловить во время компиляции?
Тут речь идет только о компиляции. Ошибки все отлично ловятся и без этого скрипта, но stlfilt повышает информативность выводаю
> потом если не получилось, запускать gcc заново
что не получилось или может не получиться? gcc и так запускается, парсится только вывод об ошибках.
> А ошибки в шаблонах так и не научились ловить во время компиляции?
Тут речь идет только о компиляции. Ошибки все отлично ловятся и без этого скрипта, но stlfilt повышает информативность выводаю
> Вы, похоже, не выспались.
ну да, точней еще не ложился. )
По работе переключился на C#, сейчас недавние траблы с с++ вспоминать не хочется. Статья хорошая, кому-то надеюсь пригодится. А в vs похожий фильтр встроить можно чтобы Output фильтровал?
ну да, точней еще не ложился. )
По работе переключился на C#, сейчас недавние траблы с с++ вспоминать не хочется. Статья хорошая, кому-то надеюсь пригодится. А в vs похожий фильтр встроить можно чтобы Output фильтровал?
Настоящий C++ программист должен уметь читать такие ощибки :)
Плохо, что с ним не будет работать, например, ccache.
а собственно, почему нет, если ccache/distcc использовать через символьные ссылки?
Сообщения STL об ошибках кажутся длинными только тому, кто не работал с boost: ) Но вещица удобная. Впрочем, если постоянно работать с шаблонами в С++, вскоре начинаешь догадываться о том, какая может быть ошибка просто по наличию сообщения, толком его не читая.
Еще одна идея для тестирования этой штуковины. Подсуньте ей на вход какой-нибудь шаблон из boost. А можно сразу смесь чего-нибудь из boost. Интересно как она отреагирует на такие «ругательства».
в gcc-trunk(4.5) не печатаются дефолтные аргументы параметров.
>test.cpp:25:18: error: no matching function for call to ‘std::map<int, double>::map(int, int, int)’
>test.cpp:25:18: error: no matching function for call to ‘std::map<int, double>::map(int, int, int)’
красотища! Значит, проект скоро (через годика 3, когда все перейдут на новый gcc) станет никому не нужным. (:
Цветовой схемой и списком не поделитесь?)
Особенно интересно, как Вы список ошибок в отдельное окно выносите и подсвечиваете.
Особенно интересно, как Вы список ошибок в отдельное окно выносите и подсвечиваете.
списком плагинов*
>Цветовой схемой и списком не поделитесь?)
>как Вы список ошибок в отдельное окно выносите и подсвечиваете.
emacs > compile
(defun color-theme-qb ()
"Color theme"
(interactive)
(color-theme-install
'(color-theme-qb
((background-color . "#141414")
(background-mode . dark)
(border-color . "black")
(cursor-color . "#A7A7A7")
(foreground-color . "#F8F8F8")
(mouse-color . "sienna1"))
(default ((t (:background "#141414" :foreground "#CACACA"))))
(modeline ((t (:background "#999999" :foreground "black" :box
(:line-width 1 :style
released-button)))))
(border-glyph ((t (nil))))
(buffers-tab ((t (:background "#141414" :foreground "#CACACA"))))
(font-lock-builtin-face ((t (:foreground "#CACACA"))))
(font-lock-comment-face ((t (:foreground "#5F5A60"))))
(font-lock-constant-face ((t (:foreground "#CF6A4C"))))
(font-lock-doc-string-face ((t (:foreground "DarkOrange"))))
(font-lock-function-name-face ((t (:foreground "#9B703F"))))
(font-lock-keyword-face ((t (:foreground "#CDA869"))))
(font-lock-preprocessor-face ((t (:foreground "Aquamarine"))))
(font-lock-reference-face ((t (:foreground "SlateBlue"))))
(font-lock-string-face ((t (:foreground "#8F9D6A"))))
(font-lock-type-face ((t (:foreground "#9B703F"))))
(font-lock-variable-name-face ((t (:foreground "#7587A6"))))
(font-lock-warning-face ((t (:background "#660000" :foreground "red"))))
(font-lock-regexp-grouping-backslash ((t (:foreground "#E9C062"))))
(font-lock-regexp-grouping-construct ((t (:foreground "red"))))
(minibuffer-prompt ((t (:foreground "#5F5A60"))))
(ido-subdir ((t (:foreground "#CF6A4C"))))
(ido-first-match ((t (:foreground "#8F9D6A"))))
(ido-only-match ((t (:foreground "#8F9D6A"))))
(mumamo-background-chunk-submode ((t (:background "#222222"))))
(gui-element ((t (:background "#D4D0C8" :foreground "black"))))
(region ((t (:background "#27292A"))))
(mode-line ((t (:background "grey75" :foreground "black"))))
(highlight ((t (:background "#111111"))))
(highline-face ((t (:background "SeaGreen"))))
(text-cursor ((t (:background "yellow" :foreground "black"))))
(zmacs-region ((t (:background "snow" :foreground "blue"))))
(show-paren-match-face
((t (:foreground "#2e3436" :background "#73d216"))))
(show-paren-mismatch-face
((t (:background "#ad7fa8" :foreground "#2e3436"))))
(isearch ((t (:background "#222222"))))
(isearch-lazy-highlight-face
((t (:foreground "#2e3436" :background "#e9b96e"))))
(flymake-errline ((t (:background "DarkRed"))))
(flymake-warnline ((t (:background "DarkYellow"))))
(primary-selection ((t (:background "#444444"))))
(secondary-selection ((t (:background "#666666")))))))
>как Вы список ошибок в отдельное окно выносите и подсвечиваете.
emacs > compile
В принципе, ошибки такого плана возникают не так уж часто. Причем в более чем половине случаев с первого взгляда на строчку уже понятно, в чем проблема. А если не ясно — то можно и прочитать детали.
С другой стороны, может, кому-нибудь и пригодится.
С другой стороны, может, кому-нибудь и пригодится.
Sign up to leave a comment.
STL Filter — скрипт для лаконичных ошибок STL