File: arguments.qbk

package info (click to toggle)
boost1.88 1.88.0-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 576,932 kB
  • sloc: cpp: 4,149,234; xml: 136,789; ansic: 35,092; python: 33,910; asm: 5,698; sh: 4,604; ada: 1,681; makefile: 1,633; pascal: 1,139; perl: 1,124; sql: 640; yacc: 478; ruby: 271; java: 77; lisp: 24; csh: 6
file content (35 lines) | stat: -rw-r--r-- 1,426 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
[/==============================================================================
    Copyright (C) 2001-2010 Joel de Guzman
    Copyright (C) 2001-2005 Dan Marsden
    Copyright (C) 2001-2010 Thomas Heller

    Distributed under the Boost Software License, Version 1.0. (See accompanying
    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
===============================================================================/]

[section Arguments]

Arguments are also functions? You bet!

Until now, we have been dealing with expressions returning a nullary function.
Arguments, on the other hand, evaluate to an N-ary function. An argument
represents the Nth argument. There are a few predefined arguments arg1,
arg2, arg3, arg4 and so on (and it's __bll__ counterparts: _1, _2, _3, _4 and so
on). Examples:

    arg1 // one-or-more argument function that returns its first argument
    arg2 // two-or-more argument function that returns its second argument
    arg3 // three-or-more argument function that returns its third argument

`argN` returns the Nth argument. Examples:

    int i = 3;
    char const* s = "Hello World";
    std::cout << arg1(i) << std::endl;        // prints 3
    std::cout << arg2(i, s) << std::endl;     // prints "Hello World"

(See [@../../example/arguments.cpp arguments.cpp])

[blurb __tip__ Learn more about arguments [link phoenix.modules.core.arguments here.]]

[endsect]