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

Using boost::ref

Boost , Chapter 1. Boost.Numeric.Odeint , odeint in detail

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Boost C++ LibrariesHomeLibrariesPeopleFAQMore

PrevUpHomeNext

В одейте все функции системы и наблюдатели передаются по значению. Например, если вы называете метод<do_step>конкретного степпера или функции интеграции, ваша система и ваш степпер будут переданы по значению:

rk4.do_step( sys , x , t , dt );   // pass sys by value

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

В таких случаях можно легко использовать<boost::ref>(и его относительное<boost::cref>), который передает свой аргумент посредством ссылки (или постоянной ссылки). odeint распаковывает аргументы и не копирует ваш системный объект:

rk4.do_step( boost::ref( sys ) , x , t , dt );   // pass sys as references

Такой же механизм можно использовать для наблюдателей в функциях интеграции.

[Tip]Tip

Если вы используете C++11, вы также можете использовать<std::ref>и<std::cref>.


PrevUpHomeNext

Статья Using boost::ref раздела Chapter 1. Boost.Numeric.Odeint odeint in detail может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: odeint in detail ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 18:25:54/0.027744054794312/1