SYNOPSIS
mcpp [options] [<infile> [<outfile>]]DESCRIPTION
mcpp is a C/C++ preprocessor with the highest conformance which implements C90, C99 and C++98. mcpp has plentiful diagnostics and many #pragmas. It is useful to check portability of your program, and also useful to debug complicated macro. This is a man-page for mcpp of compiler-independent-build.OPTIONS
mcpp expects two file names as arguments, <infile> and <outfile>. If not specified, <infile> defaults to standard input and <outfile> defaults to standard output.It takes the following options.
Commonly used options:
- -@MODE
- Specify preprocessing mode. MODE should be one of these 4:
 - -@std
 - Standard conforming mode. (default)
 - -@poststd, -@post
 - special 'post-Standard' mode.
 - -@kr
 - K&R 1st mode.
 - -@oldprep, -@old
 - "old_preprocessor" mode (i.e. "Reiser model" cpp).
 - -C
 - Output also comments.
 - -D <macro>[=<value>]
 - Define <macro> as <value> (default:1).
 - -D <macro(args)>[=<replace>]
 - Define <macro(args)> as <replace>.
 - -e <encoding>
 - Change the default multi-byte character encoding to one of: euc_jp, gb2312, ksc5601, big5, sjis, iso2022_jp, utf8.
 - -I <directory>
 - Add <directory> to the #include search list.
 - -I-
 - Unset system or site specific include directories.
 - -j
 - Do not output the source line in diagnostics.
 - -M, -MM, -MD, -MMD, -MP, -MQ target, -MT target, -MF file
 - Output source file dependency line for makefile.
 - -N
 - Don't predefine any non-standard macros.
 - -o <file>
 - Output to <file>.
 - -P
 - Don't output #line lines.
 - -Q
 - Output diagnostics to "mcpp.err" (default:stderr).
 - -U <macro>
 - Undefine <macro>.
 - -v
 - Show version of mcpp
 .- -W <level>
 - Set warning level to <level> (OR of {0,1,2,4,8,16}, default:1).
 - -z
 - Don't output the included file, only defining macros.
  
Options available with -@std (default) or -@poststd options:
- -+
 - Process C++ source.
 - -2
 - Enable digraphs.
 - -h <n>
 - Re-define the pre-defined macro __STDC_HOSTED__ as <n>.
 - -S <n>
 - Redefine __STDC__ to <n>, undefine old style macros.
 - -V <n>
 - 
Redefine __STDC_VERSION__ or __cplusplus to <n>.
C with -V199901L specifies C99 mode.
C++ with -V199901L specifies C99 compatible mode. 
Options available with only -@std (default) option:
- -@compat
 - Expand recursive macro more than Standard.
 - -3
 - Enable trigraphs.
 - -K
 - Embed macro annotations into comments.
 
Options available with -@std (default), -@kr or -@oldprep options:
- -a
 - Process "assembler" source.
 
PRAGMA
mcpp has the following #pragma directives.- #pragma once
 - Read the header file only once even if multiply #included.
 - #pragma __setlocale( "encoding")
 - Specify the multibyte character encoding to "encoding". See -e option for the encodings.
 - #pragma MCPP put_defines
 - Putout all the macro definitions currently valid.
 - #pragma MCPP debug <args>
 - 
Start to putout debugging informations.
<args> should be one or more of:
token expand macro_call path if expression memory getc - #pragma MCPP end_debug <args>
 - 
Stop to putout debugging informations.
<args> are the same with 'debug'.
No argument specifies all arguments. - #pragma MCPP push_macro( "MACRO")
 - Save the macro definition to the stack.
 - #pragma MCPP pop_macro( "MACRO")
 - Retrieve the macro definition from the stack.
 - #pragma MCPP preprocess
 - "Pre-preprocess" the following header files for mcpp.
 - #pragma MCPP warning any message
 - Putout warning "any message".
 

