Этого должно быть достаточно, если вы знаете имя функции-члена, которую вы ожидаете. (В этом случае функция bla не может создать экземпляр, если нет какой-либо функции-члена (писать все, что работает в любом случае, является жестким, потому что отсутствует частичная специализация функции. Возможно, вам придется использовать шаблоны классов). Кроме того, разрешающая структура (которая аналогичен enable_if) также может быть запрограммирован на тип функции, которую вы хотите иметь в качестве члена.
template <typename T, int (T::*) ()> struct enable { typedef T type; };
template <typename T> typename enable<T, &T::i>::type bla (T&);
struct A { void i(); };
struct B { int i(); };
int main()
{
A a;
B b;
bla(b);
bla(a);
}
Отражатель является средством просмотра классов, проводником, анализатором и средством просмотра документации для.NET. Отражатель позволяет легко просматривать, перемещаться, искать, декомпилировать и анализировать блоки.NET в C#, Visual Basic и IL.
Мы используем инструмент Microsoft Application Verifier в сочетании с WinDbg обычно при разработке нового кода C++. Чем раньше Вы обнаруживаете отказ в своем коде, тем более дешево это для фиксации. Получите его здесь:
Загрузка верификатора приложения
Инструмент LeakDiag и связанный ldgrapher являются полезными инструментами для обнаружения утечек памяти в исходных приложениях. Можно получить их здесь:
Существуют некоторые превосходные блоги, там говоря об использовании инструментов как Панель инструментов Отладки WinDBG, один из моих фаворитов.
PEBrowsePro и PEBrowseDbg.
Оба в: http://www.smidgeonsoft.com/
Я предполагаю, что Немного ответом Gibb была бы Visual Studio 2008, однако:
(Важное) управление конфигурацией:
Редакторы:
Снимки экрана (для приложений Windows)