Проблемы с разными компиляторами
Проблемы с разными компиляторами
Специализация шаблонных функций – членов шаблонного класса
К сожалению, вышеприведенный код не будет компилироваться на компиляторах, не поддерживающих специализацию шаблонов-функций – членов шаблонов классов.
ПРИМЕЧАНИЕ К таким относятся, например, gcc-2.95 и gcc-2.96
Попробуем обойтись без них. Специализация в той или иной форме нам в любом случае понадобится, так что воспользуемся тем, что есть – частичной специализацией классов. Введем вспомогательный класс и специализируем его для особого случая обычных указателей.
template<class R, class T, class TT>
struct gen_mem_fun_operator {
R operator()(TT p, R (T::*pm)()) {return (p.operator->()->*pm)();}
};
template<class R, class T>
struct gen_mem_fun_operator<R, T, T*> {
R operator()(T* p, R (T::*pm)()) {return (p->*pm)();}
};
Тогда наш gen_mem_fun_t запишется так:
template<class R, class T>
struct gen_mem_fun_t {
explicit gen_mem_fun_t(R (T::*pm_)()): pm(pm_) {}
template<class TT> R operator()(TT p) {return gen_mem_fun_operator<R, T, TT>()(p, pm);}
private:
R (T::*pm)();
};
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Проблемы
Проблемы • Мониторинг в SQL базу активно пожирает дисковое пространство! Например, за неделю работы программы, при общем количестве прошедшего трафика порядка 40 гигабайт (82 миллиона пакетов), в таблице мониторинга образовалось 2 миллиона записей). Размер SQL–таблицы и
Проблемы
Проблемы 7.1. Что-то не работает, как найти причину? Вообще-то, этот вопрос не относится к какой либо из конкретных операционных систем, и опытные пользователи прекрасно знают ответ на него, но анализируя ваши письма мы пришли к выводу, что лишним он не будет. Прежде всего,
1.5. Проблемы при установке
1.5. Проблемы при установке 1.5.1. Конфликты Fedora Core 1 и 2 с различным оборудованием Материнские платы ASUSНа материнскую плату ASUS серии P4P800 Fedora Core 2 не устанавливается. Пока данная проблема не решена. Остается сменить либо материнскую плату, либо дистрибутив. Следить за ходом
1.5.6. Проблемы при загрузке
1.5.6. Проблемы при загрузке ОС Linux может использовать разделы, которые расположены дальше 1024-го цилиндра, но не может загружаться с таких разделов. Поэтому, если вы не можете создать Linux-раздел «ближе» к началу диска, создайте небольшой раздел для точки монтирования /boot (не
B.6. Проблемы mIRC DCC
B.6. Проблемы mIRC DCC mIRC использует специфичные настройки, которые позволяют соединяться через брандмауэр и обрабатывать DCC соединения должным образом. Если эти настройки используются совместно с iptables, точнее с модулями ip_conntrack_irc и ip_nat_irc, то эта связка просто не будет
25. Проблемы с оборудованием
25. Проблемы с оборудованием Оборудование – физическая часть компьютера, куда входит все, что вы можете потрогать. Хотя оборудование доставляет меньшее количество проблем, чем программное обеспечение Windows XP (или любой другой операционной системы), они все-таки
5. Проблемы и их решения
5. Проблемы и их решения Зависла программа Если зависла программа, то в таком случае существует несколько вариантов действий.• В Windows XP большинство зависших приложений можно закрыть, нажав кнопку: Программа попросит подтверждение (рис. 5.1). Нажимаем Завершить
Проблемы с событиями
Проблемы с событиями Несмотря на то, что каждый клиент соединяется с сервером через один канал, события Firebird - механизм обратной связи, который позволяет передавать сообщения о событиях назад клиентам с помощью триггеров и хранимых процедур, - используют произвольные
Синтаксические проблемы
Синтаксические проблемы Возможно что Вы, как и многие люди, с которыми я обсуждал эту проблему, имеете представление относительно синтаксического смысла моего утверждения, что не методы и не друзья предпочтительнее методов. Возможно, что Вы даже "купились" на мои
33.8. Проблемы безопасности
33.8. Проблемы безопасности Уместным будет лишний раз предупредить о соблюдении мер предосторожности при работе с незнакомыми сценариями. Сценарий может содержать червя, трояна или даже вирус. Если вы получили сценарий не из источника, которому доверяете, то никогда не
Часть проблемы
Часть проблемы Автор: Киви БердСреди перлов народной мудрости, осевшей в пословицах и поговорках, переводчикам далеко не всегда удается находить равноценные эквиваленты для разных языков. Обычно лингвистические нюансы любят обыгрывать эстрадные юмористы, переводя, к
Проблемы (не)совместимости
Проблемы (не)совместимости Автор: Киви БердВ последнюю неделю мая окружной суд Хельсинки единогласно вынес «историческое» решение, постановив, что система защиты контента CSS, используемая на видеодисках DVD, является неэффективной (а значит, и ее снятие не является
Хьюстон, у нас проблемы!
Хьюстон, у нас проблемы! Похоже, нынешний «бархатный сезон» на юго-восточном побережье Соединенных Штатов обещает стать самым разрушительным за всю историю страны. Не прошло и месяца с тех пор, как грозная Катрина превратила Нью-Орлеан в Венецию (см. «КТ» #604, «КТ» #605), как
Сложные проблемы
Сложные проблемы Сборщик мусора сталкивается со следующими проблемами, вызванными практическими ограничениями на размещение объектов в современной ОО-среде:[x]. ОО-подпрограммы могут вызывать внешние программы, в частности, С-функции, которые могут, в свою очередь,