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

Variables

Boost , ,

Variables

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

    plus_assign(x, y) { x += y; }

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

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

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

    int i_;
    actor<variable<int> > i = i_;

теперь мы можем использовать нашего актера > 'i' в качестве аргумента для ленивой функции plus_assign:

    plus_assign(i, 2)

Коротким ярлыком является функция полезности var(v). Выражение выше также эквивалентно:

    plus_assign(var(i_), 2)

Ленивые переменные — это актеры. Таким образом, переменные могут быть оценены через оператор (оператор) актера. Такое обращение дает идентичность переменных. Пример:

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

скачать "3 Hello World"

Наконец, может быть использована еще одна бесплатная функция const(cv). const(cv) создает объект, на который ссылаются данные, используя постоянную ссылку. Это похоже на value но когда данные, которые должны быть переданы в качестве аргумента для функции, являются тяжелыми и дорогими для копирования по стоимости, const(cv) предлагает альтернативу с низкими накладными расходами.



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




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-21 16:27:25/0.0034599304199219/0