// This file contains C preprocessor directives that SWIG should successful ignore
%module cpp_ignore
// A Macro
#define foo(a,b) (a+b)
// Some erroneous defines
#define LBRACE _{
#define DEF_VALUE {{0,0},{1,2},{3,4}}
#define FOOBAR #&&&*!((@))(#JJAJKSKK!@((#JS S))A @JJ#
int a;
#define ASYMBOL
// An include
#include "foobar.h"
// Misc C++ directives
#line 45,"input.i"
#error
// Should have no effect
#
// Test #undef
#undef ASYMBOL
#define ASYMBOL
// Test the #if defined() macro
#if defined(ASYMBOL)
double b;
#if ! defined(ASYMBOL)
double not_defined;
#elif defined(ASYMBOL)
double not_defined_2;
#endif
#elif defined(BSYMBOL)
double c;
#else
double d;
#endif
syntax highlighted by Code2HTML, v. 0.9.1