File: cpp11_brackets_expression.i

package info (click to toggle)
swig 4.3.0-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 46,232 kB
  • sloc: cpp: 54,631; ansic: 29,122; java: 17,530; python: 12,505; cs: 10,369; ruby: 7,232; yacc: 6,477; makefile: 5,965; javascript: 5,520; sh: 5,415; perl: 4,187; php: 3,693; ml: 2,187; lisp: 2,056; tcl: 1,991; xml: 115
file content (35 lines) | stat: -rw-r--r-- 1,225 bytes parent folder | download | duplicates (2)
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
%module cpp11_brackets_expression

%warnfilter(SWIGWARN_PARSE_ASSIGNED_VALUE) Piece::kMaxSize;
%warnfilter(SWIGWARN_PARSE_ASSIGNED_VALUE) Piece::Just123;
%warnfilter(SWIGWARN_PARSE_ASSIGNED_VALUE) ::kMaxSizeGlobal;

%inline %{

#include <limits>

static constexpr int global_as_you_expect(int val) { return val; }
static constexpr int global_one_two_three() { return 123; }

class Piece {
public:
    typedef size_t size_type;
    typedef int difference_type;

    static constexpr size_type kOk2 = std::numeric_limits<difference_type>::max();

    // Failed to parse (issue #2640):
    static constexpr size_type kMaxSize = (std::numeric_limits<difference_type>::max)();

    // Also fails to parse:
//    int f(int x = (std::numeric_limits<difference_type>::max)());

    static constexpr size_type SimpleAsYouExpect123 = global_as_you_expect(123);
    static constexpr size_type SimpleJust123 = global_one_two_three();

    static constexpr size_type AsYouExpect123 = (global_as_you_expect)(123); // Did parse okay
    static constexpr size_type Just123 = (global_one_two_three)();           // Did not parse okay
};

static const Piece::size_type kMaxSizeGlobal = (std::numeric_limits<Piece::difference_type>::max)();
%}