Я помещаю превосходный ответ JLBorges на аналогичный вопрос дословно из cplusplus.com, так как это наиболее краткое объяснение, которое я прочитал по этому вопросу.
] В шаблоне, который мы пишем, есть два типа имен, которые можно использовать - зависимые имена и не зависимые имена. Зависимое имя - это имя, которое зависит от параметра шаблона; неизменяемое имя имеет то же значение, независимо от параметров шаблона.
Например:
template< typename T > void foo( T& x, std::string str, int count ) { // these names are looked up during the second phase // when foo is instantiated and the type T is known x.size(); // dependant name (non-type) T::instance_count ; // dependant name (non-type) typename T::iterator i ; // dependant name (type) // during the first phase, // T::instance_count is treated as a non-type (this is the default) // the typename keyword specifies that T::iterator is to be treated as a type. // these names are looked up during the first phase std::string::size_type s ; // non-dependant name (type) std::string::npos ; // non-dependant name (non-type) str.empty() ; // non-dependant name (non-type) count ; // non-dependant name (non-type) }
То, что зависит от зависимого имени, может быть чем-то другим для каждого конкретного экземпляра шаблона. Как следствие, шаблоны C ++ подвержены «двухфазному поиску имен». Когда шаблон сначала анализируется (до того, как выполняется какое-либо создание), компилятор просматривает не зависящие имена. Когда происходит конкретное создание шаблона, параметры шаблона известны к тому времени, и компилятор ищет зависимые имена.
На первом этапе анализатор должен знать, является ли зависимое имя именем типа или имени не-типа. По умолчанию зависимым именем считается имя не-типа.
Использовать ключевое слово typename только в объявлениях шаблонов и определениях, приведенных ниже.
blockquote>у вас есть квалифицированное имя, которое относится к типу и зависит от параметра шаблона.
Для Windows я настоятельно рекомендую Скрипач , который является клиентским инструментом, который проксирует Ваш веб-трафик и позволяет Вам исследовать его. Это покажет Вам, если сжатие будет идти и работа. Это также полезно для многих другая клиентская связанная с HTTP отладка и задачи диагноза.
Wireshark, прежний Etherial оказался самым ценным инструментом для меня.
Просто выбирают сетевой адаптер (если существуют многие), введите "tcp порт 80" в поле фильтра, нажмите Capture - и Вы все установлены.
А также что-то как Скрипач для рассмотрения трафика уровня HTTP можно использовать Firefox с Firebug и YSlow дополнения. YSlow дает Вам большой полезный анализ о том, почему Ваша страница могла бы быть медленной - среди них, это дает Вам размер различных активов, которые Ваш запрос загружает (HTML, CSS, JavaScript, изображения и другие медиа и т.д.). Можно сравнить размер страниц с и без сжатия - если HTML меньше с включенным сжатием, Вы знаете, что это работает. Это также даст Вам значения с пустым кэшем и запущенным кэшем, позволяя Вам видеть, сколько Вы сохраняете и для новых посетителей и возвращаете посетителей.
Поскольку Firefox взглянул на эти дополнения:
Оба могут использоваться для контроля трафика к/от браузеру (Вы видите размер каждого ответа). Мне особенно нравится Httpfox, действительно хорошее дополнение, которое я каждый день использую.
Можно использовать этот веб-сайт: http://whatsmyip.org/mod_gzip_test/
Используйте Скрипач для шпионажа за передачами HTTP.
"Запрос Сборки" (создают HTTP, ДОБИРАЕТСЯ), и проверьте "Кодирующий Содержание" заголовок ответа HTTP для Вашей несжатой страницы и проверьте ее "Довольную Длину". Сравните тех, которые к тем же значениям для Вашей сжатой страницы.
"Довольное Кодирование" должно быть чем-то как "gzip" для сжатых ответов, и Ваша "Довольная Длина" должна быть короче. Можно использовать поля "Content-Length" от обоих для определения степени сжатия.
Если Вы хотите пойти действительно низкая технология, Вы можете telnet к порту HTTP (80?) на целевом сервере и типе в запросе вручную. Если Вы возвращаете простой текст, то это не gzipped, но если Вы получаете мусор затем, Вы на что-то. Если необходимо видеть структуру заголовков, можно скопировать их с Firefox с помощью чего-то как Живые HTTP-заголовки расширение.
Мы искали вокруг немного. По-видимому, существует много сайтов, которые могут проверить, что наши страницы сжаты.