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

References

Boost , Chapter 1. Phoenix 3.2.0 , Core

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

PrevUpHomeNext
#include <boost/phoenix/core/reference.hpp>

Значения являются неизменными константами. Попытка изменить значение приведет к ошибке компиляции времени. Когда мы хотим, чтобы функция изменила параметр, мы используем ссылку. Например, представьте себе ленивую функцию<add_assign>:

void add_assign(T& x, T y) { x += y; } // pseudo code

Здесь мы хотим, чтобы первый аргумент функции x был изменчивым. Очевидно, мы не можем написать:

add_assign(1, 2) // error first argument is immutable

В C++ мы можем передать ссылку на переменную в качестве первого аргумента в нашем примере выше. Тем не менее, по умолчанию, библиотека заставляет аргументы, переданные частично прикладным функциям, быть неизменными значениями (см.Значения). Для достижения своих целей мы используем:

expression::reference<T>::type

Это похоже на<expression::value<T>::type>ранее, но вместо этого имеет ссылку на переменную.

Обычно мы не ставим<expression::reference<T>::type>непосредственно. Вместо этого мы используем:

ref(v)

Например (где<i>является<int>переменной):

add_assign(ref(i), 2)
Evaluating a Reference

Ссылки - это актеры. Следовательно, ссылки можно оценить. Такое обращение указывает на личность ссылки. Пример:

int i = 3;
char const* s = "Hello World";
cout << ref(i)() << ref(s)();

Оригинальное название: 3 Hello World

Constant References

Еще одна свободная функция

cref(cv)

Также может использоваться.<cref(cv)>создает<expression::reference<Tconst>::type>объект. Это похоже на<expression::value<T>::type>, но когда данные, которые должны быть переданы в качестве аргумента для функции, являются тяжелыми и дорогими для копирования по стоимости,<cref(cv)>предлагает более легкую альтернативу.


PrevUpHomeNext

Статья References раздела Chapter 1. Phoenix 3.2.0 Core может быть полезна для разработчиков на c++ и boost.




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 02:38:59/0.0052728652954102/1