В моей установке Eclipse 3.5.2 (Ubuntu 10.10) установлено несколько плагинов (Apatana, SVN, Pydev, Zend Debugger, PHP). Одна проблема, которая меня беспокоит с тех пор, как я впервые использовал Eclipse много лет назад, заключается в том, что каждый плагин помещает новые записи в контекстные меню.
К сожалению, кажется, что различные точки зрения не могут определить, какие пункты меню бесполезны. Так что при программировании PHP меню полны вещей java и pydev, мне это действительно не нужно!
Чем больше плагинов установлено, тем сложнее становятся меню. Кажется немного странным, что такая богатая среда IDE не поддерживает контекстно-зависимые "контекстные" меню ...: - (
Я надеюсь, что где-то в Интернете кто-то знает, как удалить неиспользуемые пункты меню или даже создал для этого небольшой плагин ??
Есть идеи?
Скриншот: чтобы определить, перегружена ли бесплатная функция для данного класса? По сути, у меня есть следующее решение: struct has_no_f {}; struct has_f {}; void f (has_f ...
Есть ли способ с помощью SFINAE определить, перегружена ли свободная функция для данного класса?
В основном, у меня есть следующее решение:
struct has_no_f { };
struct has_f { };
void f(has_f const& x) { }
template
enable_if::value, int>::type call(T const&) {
std::cout << "has f" << std::endl;
}
template
disable_if::value, int>::type call(T const&) {
std::cout << "has no f" << std::endl;
}
int main() {
call(has_no_f()); // "has no f"
call(has_f()); // "has f"
}
Простая перегрузка call
не работает, поскольку на самом деле существует много типов foo
и bar
, а функция call
не знает о них (в основном вызов
находится внутри, и пользователи предоставляют свои собственные типы.)
Я не могу использовать C ++ 0x, и мне нужно рабочее решение для всех современных компиляторов.
Примечание: решение для аналогичный вопрос , к сожалению, здесь не работает.