Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Frequently Asked Questions

Boost , ,

Frequently Asked Questions

Why is data I've written to a filtering_stream not reaching the Sink at the end of the chain?
How do I write to several ostreams at once?
How do I access a Filter or Device after I've added it to a chain or attached it to a stream or stream_buffer?
How do perform file positioning operations with large (64-bit) offsets?
How do I read from or write to an STL sequence?
How do I write a stream which can read or write multibyte character encodings?
Can I swap Filters or Devices in the middle of a sequence of i/o operations?
Why does my filter chain work with std::cout but not with another ostream?
Why do I get errors stating that operator| is ambiguous?
Why do I get errors when compiling the finite_state_filter examples?

Why is data I've written to a filtering_stream not reaching the Sink at the end of the chain?

Возможно, вам придется смыть поток. Обратите внимание, однако, что нет никакой гарантии, что все данные, записанные на<filtering_stream>, будут отправлены в финал. Потопите до тех пор, пока поток не будет закрыт, если все фильтры в подстилке<chain>не являютсяFlushable.

Также возможно, что багги-фильтр изменяет данные таким образом, которого вы не ожидаете,например,, бесшумно отбрасывая данные.

How do I write to several ostreams at once?

Используйте<tee_filter>или<tee_device>См.<tee>.

How do I access a Filter or Device after I've added it to a chain or attached it to a stream or stream_buffer?

Если вы используете<stream>или<stream_buffer>, используйте<operator*>или<operator->>.

Если вы используете<filtering_stream>,<filtering_streambuf>или<chain>, используйте шаблоны функций<component_type>и<component>. В качестве альтернативы добавьте фильтр или устройство в цепочку посредством ссылки, используя обертку.

How do perform file positioning operations with large (64-bit) offsets?

Если вы используете необработанное устройство и ваш компилятор поддерживает 64-битный интегральный тип, вы можете передать большое смещение непосредственно<seek>. Чтобы преобразовать возвращаемое значение поиска в интегральный тип, используйте<position_to_offset>.

Если вы используете<stream_buffer>или<filtering_streambuf>, преобразуйте смещение в<std::streampos>с использованием<offset_to_position>, затем передайте его<pubseekpos>. Чтобы преобразовать возвращаемое значение поиска в интегральный тип, используйте<position_to_offset>.

Если вы используете<stream>или<filtering_stream>, преобразуйте смещение в<std::streampos>, используя<offset_to_position>, затем перенесите его на перегрузку<seekg>или<seekp>, которая принимает один<std::streampos>аргумент. Чтобы преобразовать возвращаемое значение поиска в интегральный тип, используйте<position_to_offset>.

См.Оффсеты потоков.

How do I read from or write to an STL sequence?

Вы можете добавить к последовательности STL, используя<back_insert_device>, или функцию<boost::iostreams::back_inserter>. Вы можете прочитать последовательность STL, добавив экземпляр<boost::itertator_range>к<filtering_stream>или<filtering_streambuf>.

См.Написание<container_source>иНаписание<container_sink>.

How do I write a stream which can read or write multibyte character encodings?

<code_converter>См.<Code Conversion>.

Can I swap Filters or Devices in the middle of a sequence of i/o operations?

Если вы выполняете вывод, и если все фильтры в вашей цепиFlushable, то да. Первый звонок<strict_sync>. Если он возвращается<true>, вы можете безопасно позвонить<set_auto_close(false)<pop>одному или нескольким компонентам, не закрывая поток. Это относится к случаям<filtering_stream>,<filtering_streambuf>и<chain>.

Why does my filter chain work with std::cout but not with another ostream?

Библиотека Iostreams хранит потоки и буферы потоков по ссылке; следовательно, потоки и буферы потоков должны пережить любую цепочку фильтров, к которой они добавлены. Это не проблема для<std::cout>, так как гарантированно доживет до конца программы.

Убедитесь, что<ostream>не уничтожается до<filtering_stream>. Если оба объекта построены на стеке внутри одного блока, убедитесь, что<ostream>построенпервым.

Why do I get errors stating that operator| is ambiguous?

Во время разрешения перегрузки для выражения, включающего<operator|>, компилятор может рассматривать неявное преобразование из интергрального типа вPipableFilter. Убедитесь, что все ваши фильтры имеют<explicit>конструкторы.См.Трубопроводы.

Why do I get errors when compiling the finite_state_filter examples?

Шаблон<finite_state_filter>требует высокостандартного компилятора. См.PortabilityиCompiler Status Tablesдля деталей.


Статья Frequently Asked Questions раздела может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-07-05 07:18:43/0.0039699077606201/0