| %module preproc_cpp | |
| // Test boolean literals (https://github.com/swig/swig/pull/2394): | |
| #if false | |
| # error "boolean preproc check fail false" | |
| #else | |
| #endif | |
| #if !false | |
| #else | |
| # error "boolean preproc check fail !false" | |
| #endif | |
| #if true | |
| #else | |
| # error "boolean preproc check fail true" | |
| #endif | |
| #if !true | |
| # error "boolean preproc check fail !true" | |
| #else | |
| #endif | |
| #if (true) | |
| #else | |
| # error "boolean preproc check fail (true)" | |
| #endif | |
| #if (0 || true) | |
| #else | |
| # error "boolean preproc check fail (0 || true)" | |
| #endif | |
| // Test alternative operator names (https://github.com/swig/swig/issues/2914): | |
| #if true or 0 | |
| #else | |
| # error "boolean preproc check fail true or 0" | |
| #endif | |
| #if true and 1 | |
| #else | |
| # error "boolean preproc check fail true and 1" | |
| #endif | |
| #if true xor false | |
| #else | |
| # error "boolean preproc check fail true xor false" | |
| #endif | |
| #if 1 bitor 2 | |
| #else | |
| # error "boolean preproc check fail 1 bitor 2" | |
| #endif | |
| #if not(1 bitand 2) | |
| #else | |
| # error "boolean preproc check fail not(1 bitand 2)" | |
| #endif | |
| #if compl 0 | |
| #else | |
| # error "boolean preproc check fail compl 0" | |
| #endif | |
| #if (1 bitor 2) not_eq 1 | |
| #else | |
| # error "boolean preproc check fail (1 bitor 2) not_eq 1" | |
| #endif | |
| // Regression tests for bugs handling a comma in a comment in a macro: | |
| // - https://github.com/swig/swig/issues/974 (for /* */) | |
| // - https://github.com/swig/swig/pull/1166 (for //) | |
| // Also see preproc.i | |
| %inline %{ | |
| #define swig__attribute__(x) | |
| #define TCX_PACKED(d) d swig__attribute__ ((__packed__)) | |
| TCX_PACKED (typedef struct tcxMessageTestImpl | |
| { | |
| int mHeader; /**< comment */ | |
| }) tcxMessageTest; | |
| TCX_PACKED (typedef struct tcxMessageBugImpl | |
| { | |
| int mBid; /**< Bid price and size, check PresentMap if available in message */ | |
| }) tcxMessageBug; | |
| TCX_PACKED (typedef struct tcxMessageTestImpl2 | |
| { | |
| int mHeader; ///< comment | |
| }) tcxMessageTest2; | |
| TCX_PACKED (typedef struct tcxMessageBugImpl2 | |
| { | |
| int mBid; ///< Bid price and size, check PresentMap if available in message | |
| }) tcxMessageBug2; | |
| %} |