Comments 35
Весьма полезная информация. Спасибо.
А как эта штука реагирует на остальные ошибки, не связанные с шаблонами? Вы проводили более масштабное тестирование, если можно так выразиться?
А как эта штука реагирует на остальные ошибки, не связанные с шаблонами? Вы проводили более масштабное тестирование, если можно так выразиться?
+2
Увы, на остальные ошибки она забивает. Каких вам еще ошибок не хватает? Вот мне бы очень бы понравилась иная обработка ошибки «отсутствие точки с запятой в конце определения класса».
А этот скриптик просто сворачивает на место typedef'ы и убирает лишние параметры шаблонов.
А этот скриптик просто сворачивает на место typedef'ы и убирает лишние параметры шаблонов.
+1
Можно ли его использовать для фильтрации вывода компилятора таким образом: "g++ testmap.cpp | gfilt"?
+2
Я спрашивал подовляет она или не изменяет другие ошибки? например про точки с запятой. Если нет то, хорошо. А вообще, сдается мне, что «лишних параметров шаблонов» не бывает ;)
+1
Давно ждал что-то подобное, а написать руки не дошли. Спасибо.
+1
Мелочь, но приятно :) Спасибо
+1
По мойму, костыль этот проблему не решает, а добавляет еще кучу, надо сначала через gfilt запускать компилирование, а потом если не получилось, запускать gcc заново, смотреть другой отчет об ошибках? А ошибки в шаблонах так и не научились ловить во время компиляции?
0
Вы, похоже, не выспались.
> потом если не получилось, запускать gcc заново
что не получилось или может не получиться? gcc и так запускается, парсится только вывод об ошибках.
> А ошибки в шаблонах так и не научились ловить во время компиляции?
Тут речь идет только о компиляции. Ошибки все отлично ловятся и без этого скрипта, но stlfilt повышает информативность выводаю
> потом если не получилось, запускать gcc заново
что не получилось или может не получиться? gcc и так запускается, парсится только вывод об ошибках.
> А ошибки в шаблонах так и не научились ловить во время компиляции?
Тут речь идет только о компиляции. Ошибки все отлично ловятся и без этого скрипта, но stlfilt повышает информативность выводаю
+3
> Вы, похоже, не выспались.
ну да, точней еще не ложился. )
По работе переключился на C#, сейчас недавние траблы с с++ вспоминать не хочется. Статья хорошая, кому-то надеюсь пригодится. А в vs похожий фильтр встроить можно чтобы Output фильтровал?
ну да, точней еще не ложился. )
По работе переключился на C#, сейчас недавние траблы с с++ вспоминать не хочется. Статья хорошая, кому-то надеюсь пригодится. А в vs похожий фильтр встроить можно чтобы Output фильтровал?
+2
Настоящий C++ программист должен уметь читать такие ощибки :)
0
Плохо, что с ним не будет работать, например, ccache.
+1
а собственно, почему нет, если ccache/distcc использовать через символьные ссылки?
+1
Сообщения STL об ошибках кажутся длинными только тому, кто не работал с boost: ) Но вещица удобная. Впрочем, если постоянно работать с шаблонами в С++, вскоре начинаешь догадываться о том, какая может быть ошибка просто по наличию сообщения, толком его не читая.
+3
Еще одна идея для тестирования этой штуковины. Подсуньте ей на вход какой-нибудь шаблон из boost. А можно сразу смесь чего-нибудь из boost. Интересно как она отреагирует на такие «ругательства».
+2
в 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)’
+1
красотища! Значит, проект скоро (через годика 3, когда все перейдут на новый gcc) станет никому не нужным. (:
+1
+1
Цветовой схемой и списком не поделитесь?)
Особенно интересно, как Вы список ошибок в отдельное окно выносите и подсвечиваете.
Особенно интересно, как Вы список ошибок в отдельное окно выносите и подсвечиваете.
+1
списком плагинов*
+1
>Цветовой схемой и списком не поделитесь?)
>как Вы список ошибок в отдельное окно выносите и подсвечиваете.
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
+1
В принципе, ошибки такого плана возникают не так уж часто. Причем в более чем половине случаев с первого взгляда на строчку уже понятно, в чем проблема. А если не ясно — то можно и прочитать детали.
С другой стороны, может, кому-нибудь и пригодится.
С другой стороны, может, кому-нибудь и пригодится.
+1
Sign up to leave a comment.
STL Filter — скрипт для лаконичных ошибок STL