Zuma Lifeguard Wiki

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
Code is compiled with no warnings at warning level 4. Exceptions are detailed below.
+
Code is compiled with no warnings at warning level 4. Exceptions are detailed below.
   
 
===Compiling 3rd-party Code===
 
===Compiling 3rd-party Code===
Code that is compiled by us but does not belong to us does not have to conform to our coding standards, and thus does not need to comply with this rule. Examples of this include the Microsoft system header filers, STL, other libraries which have purchased, etc. The warnings can be turned of temporarily like so:
+
Code that is compiled by us but does not belong to us does not have to conform to our coding standards, and thus does not need to comply with this rule. Examples of this include the Microsoft system header filers, STL, other libraries which have purchased, etc. The warnings can be turned of temporarily like so:
 
<pre>
 
<pre>
 
#pragma warning( push, 1 )
 
#pragma warning( push, 1 )
Line 10: Line 10:
   
 
===Disabling Warnings===
 
===Disabling Warnings===
"#pragma warning" may be used to disable unavoidable warnings. Two categories of warnings that are okay to disable are informational warnings, such as the compiler indicating that a function is selected to be inlined, and warnings dealing with identification of non-standard C++ usage, which is okay because all Windows code uses “Microsoft Extensions” to C++ and is common. The table below lists warnings that are okay to disable and are commonly disabled. There may be other warnings that fit in the above specified categories that are okay to disable but are not listed here. If one is found, please notify the author for inclusion in this list. All of these warnings can be turned off by including the following header file in the projects stdafx.h file:
+
"#pragma warning" may be used to disable unavoidable warnings. Two categories of warnings that are okay to disable are informational warnings, such as the compiler indicating that a function is selected to be inlined, and warnings dealing with identification of non-standard C++ usage, which is okay because all Windows code uses “Microsoft Extensions” to C++ and is common. The table below lists warnings that are okay to disable and are commonly disabled. There may be other warnings that fit in the above specified categories that are okay to disable but are not listed here. If one is found, please notify the author for inclusion in this list. All of these warnings can be turned off by including the following header file in the projects stdafx.h file:
[clearcase]:\BuildSupport\Wonderware\Compiles\DisableWarnings.h
+
[clearcase]:\BuildSupport\Wonderware\Compiles\DisableWarnings.h
   
 
Warning which can be turned off:
 
Warning which can be turned off:
 
*C4001 – Nonstandard extension 'single line comment' was used
 
*C4001 – Nonstandard extension 'single line comment' was used
*C4049 – Compiler limit : terminating line number emission. The file contains more than 65,536 (64K) source lines
+
*C4049 – Compiler limit : terminating line number emission. The file contains more than 65,536 (64K) source lines
 
*C4152 – Non standard extension, function/data ptr conversion in expression
 
*C4152 – Non standard extension, function/data ptr conversion in expression
 
*C4200 – Nonstandard extension used : zero-sized array in struct/union
 
*C4200 – Nonstandard extension used : zero-sized array in struct/union
Line 35: Line 35:
 
===Fixing Code to Remove Warnings===
 
===Fixing Code to Remove Warnings===
   
All warnings other than the ones listed above cannot be turned off. The table below lists some of these warnings and how to fix the code so that the warnings don’t show up. See the comment next to each warning on suggested ways to modify code to remove the warning.
+
All warnings other than the ones listed above cannot be turned off. The table below lists some of these warnings and how to fix the code so that the warnings don’t show up. See the comment next to each warning on suggested ways to modify code to remove the warning.
   
  +
<table class=MsoTableGrid border=1 cellspacing=0 cellpadding=0 width=590
<table class=MsoTableGrid border=1 cellspacing=0 cellpadding=0 width=590 style='width:6.15in;margin-left:.45in;border-collapse:collapse;border:none; mso-border-alt:solid windowtext .5pt;mso-yfti-tbllook:480;mso-padding-alt: 0in 5.4pt 0in 5.4pt'><tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes'><td width=590 colspan=2 valign=top style='width:6.15in;border:solid windowtext 1.0pt; mso-border-alt:solid windowtext .5pt;background:#D9D9D9;mso-shading:windowtext; mso-pattern:gray-15 auto;padding:0in 5.4pt 0in 5.4pt'>
 
  +
style='width:6.15in;margin-left:.45in;border-collapse:collapse;border:none;
<p style="text-align:center"><b style='mso-bidi-font-weight:normal'><span style='font-size:12.0pt'>Fixing Code to Remove Warnings</span></b></p>
 
  +
mso-border-alt:solid windowtext .5pt;mso-yfti-tbllook:480;mso-padding-alt:
</td></tr><tr style='mso-yfti-irow:1'><td width=210 valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; background:#D9D9D9;mso-shading:windowtext;mso-pattern:gray-15 auto; padding:0in 5.4pt 0in 5.4pt'>
 
  +
0in 5.4pt 0in 5.4pt'>
<b style='mso-bidi-font-weight: normal'>Warning</b>
 
  +
<tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes'>
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;background:#D9D9D9;mso-shading:windowtext; mso-pattern:gray-15 auto;padding:0in 5.4pt 0in 5.4pt'>
 
  +
<td width=590 colspan=2 valign=top style='width:6.15in;border:solid windowtext 1.0pt;
<b style='mso-bidi-font-weight: normal'>How to correct code</b>
 
  +
mso-border-alt:solid windowtext .5pt;background:#D9D9D9;mso-shading:windowtext;
</td></tr><tr style='mso-yfti-irow:2;height:12.75pt'><td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
mso-pattern:gray-15 auto;padding:0in 5.4pt 0in 5.4pt'>
<b style='mso-bidi-font-weight:normal'>C4005</b> – Macro redefinition
 
  +
<p class=MsoNormal align=center style='margin-top:6.0pt;text-align:center'><b
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
style='mso-bidi-font-weight:normal'><span style='font-size:12.0pt'>Fixing
This is probably happening because a particular header file that defines a macro is somehow getting <span style='font-size:8.0pt;font-family:"Lucida Console";color:blue'>#include</span>d recursively.<span style='mso-spacerun:yes'> </span>Make sure header files are guarded with <span style='font-size:8.0pt;font-family:"Lucida Console"; color:blue'>#<span class=SpellE>pragma</span> once</span>
 
  +
Code to Remove Warnings</span></b></p>
</td></tr><tr style='mso-yfti-irow:3;height:12.75pt'><td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
</td>
<b style='mso-bidi-font-weight:normal'>C4018 </b>– Signed/unsigned mismatch.
 
  +
</tr>
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
<tr style='mso-yfti-irow:1'>
This is probably a software bug.<span style='mso-spacerun:yes'> </span>Care is taken when signed and unsigned types are used in the same expression or comparison.<span style='mso-spacerun:yes'> </span>It’s very easy to get the wrong results on larger numbers.<span style='mso-spacerun:yes'> </span>For instance, and short integer value of -5 will change to number 65531 if implicitly converted to type of short unsigned integer
 
</td></tr><tr style='mso-yfti-irow:4;height:12.75pt'><td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
+
<td width=210 valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
<b style='mso-bidi-font-weight:normal'>C4065</b> – Switch statement contains 'default' but no 'case' labels
 
  +
background:#D9D9D9;mso-shading:windowtext;mso-pattern:gray-15 auto;
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
padding:0in 5.4pt 0in 5.4pt'>
This may happen with code created by a code generation such as <span class=SpellE>yacc</span> or bison.<span style='mso-spacerun:yes'> </span>Correct the input files to avoid this warning.
 
  +
<p class=MsoNormal style='margin-top:12.0pt'><b style='mso-bidi-font-weight:
</td></tr><tr style='mso-yfti-irow:5;height:12.75pt'><td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
normal'>Warning</b></p>
<b style='mso-bidi-font-weight:normal'>C4067</b> – Unexpected tokens following preprocessor directive - expected a newline
 
  +
</td>
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
The main reason one would get this error is because C++ used to allow arbitrary text after a preprocessor directives, such as:
 
  +
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
<span style='font-size:8.0pt;font-family:"Lucida Console";color:blue'>#<span class=SpellE>ifdef</span></span><span style='font-size:8.0pt;font-family: "Lucida Console"'> _DEBUG</span>
 
  +
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
<span style='font-size:8.0pt;font-family:"Lucida Console"'><b><span style='color:teal'>...</span></b></span>
 
  +
mso-border-alt:solid windowtext .5pt;background:#D9D9D9;mso-shading:windowtext;
<span style='font-size:8.0pt;font-family:"Lucida Console";color:blue'>#<span class=SpellE>endif</span></span><span style='font-size:8.0pt;font-family: "Lucida Console"'> _DEBUG</span>
 
  +
mso-pattern:gray-15 auto;padding:0in 5.4pt 0in 5.4pt'>
The text after the <span style='font-size:8.0pt;font-family:"Lucida Console";color:blue'>#<span class=SpellE>endif</span></span> is now illegal.<span style='mso-spacerun:yes'> </span>To fix, change code to look like this:
 
  +
<p class=MsoNormal style='margin-top:12.0pt'><b style='mso-bidi-font-weight:
<span style='font-size:8.0pt;font-family:"Lucida Console"; color:blue'>#<span class=SpellE>ifdef</span></span><span style='font-size: 8.0pt;font-family:"Lucida Console"'> _DEBUG</span>
 
  +
normal'>How to correct code</b></p>
<span style='font-size:8.0pt;font-family:"Lucida Console"'><b><span style='color:teal'>...</span></b></span>
 
  +
</td>
<span style='font-size:8.0pt;font-family:"Lucida Console";color:blue'>#<span class=SpellE>endif</span></span><span style='font-size:8.0pt;font-family: "Lucida Console"'> <span style='color:green'>// _DEBUG</span></span>
 
  +
</tr>
 
  +
<tr style='mso-yfti-irow:2;height:12.75pt'>
 
</td></tr><tr style='mso-yfti-irow:6;height:12.75pt'><td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
+
<td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
<b style='mso-bidi-font-weight:normal'>C4081 </b>– Expected 'token1'; found 'token2'
 
  +
padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
See message
 
  +
margin-left:40.95pt;margin-bottom:.0001pt;text-indent:-40.5pt'><b
</td></tr><tr style='mso-yfti-irow:7;height:12.75pt'><td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
<b style='mso-bidi-font-weight:normal'>C4097</b> – Expected <span class=SpellE>pragma</span> parameter to be 'token1' or 'token2'
+
style='mso-bidi-font-weight:normal'>C4005</b> – Macro redefinition</p>
  +
</td>
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
See message
 
</td></tr><tr style='mso-yfti-irow:8'><td width=210 valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt'>
+
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  +
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
<b style='mso-bidi-font-weight:normal'>C4100 </b>– Unreferenced formal parameter
 
  +
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
 
  +
margin-left:-.9pt;margin-bottom:.0001pt'>This is probably happening because a
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
 
  +
particular header file that defines a macro is somehow getting <span
There are several ways to fix this:
 
  +
style='font-size:8.0pt;font-family:"Lucida Console";color:blue'>#include</span>d
<span style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family: Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Comment out the name of the variable in the parameter list
 
  +
recursively.<span style='mso-spacerun:yes'> </span>Make sure header files are
<span style='font-family:Symbol; mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Reference the variable by itself after the return statement:
 
<span style='font-size:8.0pt;font-family:"Lucida Console"'>…</span>
+
guarded with <span style='font-size:8.0pt;font-family:"Lucida Console";
  +
color:blue'>#<span class=SpellE>pragma</span> once</span></p>
<span style='font-size:8.0pt;font-family:"Lucida Console"; color:blue'>return;</span>
 
  +
</td>
 
  +
</tr>
 
  +
<tr style='mso-yfti-irow:3;height:12.75pt'>
<span style='font-size:8.0pt;font-family:"Lucida Console"'>param1;<span style='color:blue'> </span><span style='color:#00B050'>// empty reference</span></span>
 
  +
<td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
<span style='font-size:8.0pt;font-family:"Lucida Console"'>}</span>
 
</td></tr><tr style='mso-yfti-irow:9'><td width=210 valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt'>
+
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  +
padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
<b style='mso-bidi-font-weight:normal'>C4101 </b>– Unreferenced local variable
 
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
 
  +
margin-left:40.95pt;margin-bottom:.0001pt;text-indent:-40.5pt'><b
 
  +
style='mso-bidi-font-weight:normal'>C4018 </b>– Signed/unsigned mismatch.</p>
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
 
  +
</td>
It’s best to just remove the variable.<span style='mso-spacerun:yes'> </span>If it’s there because it’s used by some other code that’s currently commented out, remove the variable and code that’s commented out.<span style='mso-spacerun:yes'> </span>If the variable is there to view its result in the debugger, then you can disable this particular instance of the warning by referencing the variable immediately after the declaration:
 
  +
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
<span style='font-size:8.0pt;font-family:"Lucida Console"; color:blue'>short</span><span style='font-size:8.0pt;font-family:"Lucida Console"'><span style='mso-spacerun:yes'> </span><span class=SpellE>objectId</span> <b><span style='color:teal'>=</span></b> <span style='color:red'>0</span><b><span style='color:teal'>;</span></b> <span class=SpellE>objectId</span><b><span style='color:teal'>;</span></b> <span style='color:green'>// for debugging</span></span>
 
</td></tr><tr style='mso-yfti-irow:10;height:12.75pt'><td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
+
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  +
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
<b style='mso-bidi-font-weight:normal'>C4102</b> – Unreferenced label
 
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
+
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
Remove the label
 
  +
margin-left:.05in;margin-bottom:.0001pt;text-indent:-3.15pt'>This is probably
</td></tr><tr style='mso-yfti-irow:11;height:12.75pt'><td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
a software bug.<span style='mso-spacerun:yes'> </span>Care is taken when
<b style='mso-bidi-font-weight:normal'>C4115</b> – Named type definition in parentheses
 
  +
signed and unsigned types are used in the same expression or comparison.<span
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
style='mso-spacerun:yes'> </span>It’s very easy to get the wrong results on
This can happen if an undefined type is used in a function prototype.<span style='mso-spacerun:yes'> </span>The compiler thinks you’re defining variable inside of parenthesis and will generate this warning.<span style='mso-spacerun:yes'> </span>Check your <span style='font-size:8.0pt; font-family:"Lucida Console";color:blue'>#include</span> list.
 
  +
larger numbers.<span style='mso-spacerun:yes'> </span>For instance, and
</td></tr><tr style='mso-yfti-irow:12;height:12.75pt'><td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
short integer value of -5 will change to number 65531 if implicitly converted
<b style='mso-bidi-font-weight:normal'>C4127</b> – Conditional expression is constant
 
  +
to type of short unsigned integer</p>
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
</td>
This can happen with some 3<sup>rd</sup> party libraries, but can also happen if we use similar tricks that expand to compile time constants for conditions.
 
  +
</tr>
</td></tr><tr style='mso-yfti-irow:13;height:12.75pt'><td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
<tr style='mso-yfti-irow:4;height:12.75pt'>
<b style='mso-bidi-font-weight:normal'>C4146</b> – Unary minus operator applied to unsigned type, result still unsigned
 
  +
<td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
Should never happen in our own code.<span style='mso-spacerun:yes'> </span>If it happens in 3<sup>rd</sup> party code, disable it.
 
  +
padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
</td></tr><tr style='mso-yfti-irow:14'><td width=210 valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt'>
 
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
<b style='mso-bidi-font-weight:normal'>C4189 </b>– Local variable is initialized by not referenced
 
  +
margin-left:40.95pt;margin-bottom:.0001pt;text-indent:-40.5pt'><b
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
 
(see comments for <b style='mso-bidi-font-weight:normal'>C4101</b>)
+
style='mso-bidi-font-weight:normal'>C4065</b> – Switch statement contains
  +
'default' but no 'case' labels</p>
</td></tr><tr style='mso-yfti-irow:15;height:12.75pt'><td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
</td>
<b style='mso-bidi-font-weight:normal'>C4192</b> – Automatically excluding 'name' while importing type library 'library'
 
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
+
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
  +
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
Use <span class=SpellE><span style='font-size:8.0pt;font-family:"Lucida Console"; color:blue'>no_auto_exclude</span></span><span style='font-size:8.0pt; font-family:"Lucida Console";color:blue'> </span>and <span style='font-size: 8.0pt;font-family:"Lucida Console";color:blue'>include(…) #import </span>attributes to turn <span class=SpellE>of</span> automatic exclusion of duplicates and specify names explicitly
 
</td></tr><tr style='mso-yfti-irow:16;height:12.75pt'><td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
+
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  +
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
<b style='mso-bidi-font-weight:normal'>C4244</b> – Conversion from 'type1' to 'type2', possible loss of data
 
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
margin-left:.05in;margin-bottom:.0001pt;text-indent:-3.15pt'>This may happen
If the lost of data is okay, then use <span class=SpellE><span style='font-size:8.0pt; font-family:"Lucida Console";color:blue'>static_cast</span></span> to explicitly cast the data to the correct type.
 
  +
with code created by a code generation such as <span class=SpellE>yacc</span>
</td></tr><tr style='mso-yfti-irow:17;height:12.75pt'><td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
or bison.<span style='mso-spacerun:yes'> </span>Correct the input files to
<b style='mso-bidi-font-weight:normal'>C4245</b> – Conversion from 'type1' to 'type2', signed/unsigned mismatch
 
  +
avoid this warning.</p>
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
</td>
See <b style='mso-bidi-font-weight:normal'>C4018</b>.<span style='mso-spacerun:yes'> </span>Make sure you understand how the data is going to get converted then use <span class=SpellE><span style='font-size: 8.0pt;font-family:"Lucida Console";color:blue'>static_cast</span></span> to explicitly cast the data to match types.
 
  +
</tr>
</td></tr><tr style='mso-yfti-irow:18;height:12.75pt'><td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
<tr style='mso-yfti-irow:5;height:12.75pt'>
<b style='mso-bidi-font-weight:normal'>C4273</b> – Function' : inconsistent DLL linkage
 
  +
<td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
Use consistent <span class=SpellE><span style='font-size:8.0pt;font-family:"Lucida Console"'>dllimport</span></span><span style='font-size:8.0pt;font-family:"Lucida Console"'> </span>qualifier <span style='font-size:8.0pt;font-family:"Lucida Console";color:blue'>__<span class=SpellE>declspec</span></span>.
 
  +
padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
</td></tr><tr style='mso-yfti-irow:19;height:25.5pt'><td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt;height:25.5pt'>
 
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
<b style='mso-bidi-font-weight:normal'>C4284</b> – Return type for 'identifier:<span class=GramE>:operator</span> –&gt;' is not a UDT or reference to a UDT.<br />Will produce errors if applied using infix notation
 
  +
margin-left:40.95pt;margin-bottom:.0001pt;text-indent:-40.5pt'><b
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:25.5pt'>
 
  +
style='mso-bidi-font-weight:normal'>C4067</b> – Unexpected tokens following
There’s probably a syntax error here.<span style='mso-spacerun:yes'> </span>Check to ensure that the <b><span style='font-size:8.0pt;font-family:"Lucida Console"; color:teal'>-&gt;</span></b> operator is being used correctly.<span style='mso-spacerun:yes'> </span>Is the identifier on the left side valid?
 
  +
preprocessor directive - expected a newline</p>
</td></tr><tr style='mso-yfti-irow:20;height:12.75pt'><td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
</td>
<b style='mso-bidi-font-weight:normal'>C4310</b> – Cast truncates constant value
 
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
+
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
  +
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
<span class=GramE>Your</span> using the wrong data type with the constant value.<span style='mso-spacerun:yes'> </span>Either pick constant in range or change the data type.
 
</td></tr><tr style='mso-yfti-irow:21;height:12.75pt'><td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
+
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  +
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
<b style='mso-bidi-font-weight:normal'>C4506</b> – No definition for inline function 'function'
 
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:3.0pt;
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
margin-left:.05in;text-indent:-2.9pt'>The main reason one would get this error
See message
 
  +
is because C++ used to allow arbitrary text after a preprocessor directives,
</td></tr><tr style='mso-yfti-irow:22;height:12.75pt'><td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
such as:</p>
<b style='mso-bidi-font-weight:normal'>C4510 </b>– default constructor could not be generated
 
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
margin-left:.3in;margin-bottom:.0001pt;mso-layout-grid-align:none;text-autospace:
Create an explicit default constructor
 
  +
none'><span style='font-size:8.0pt;font-family:"Lucida Console";color:blue'>#<span
</td></tr><tr style='mso-yfti-irow:23;height:12.75pt'><td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
class=SpellE>ifdef</span></span><span style='font-size:8.0pt;font-family:
<b style='mso-bidi-font-weight:normal'>C4511</b> – copy constructor could not be generated
 
  +
"Lucida Console"'> _DEBUG</span></p>
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
Create an explicit copy constructor
 
  +
margin-left:.3in;margin-bottom:.0001pt;mso-layout-grid-align:none;text-autospace:
</td></tr><tr style='mso-yfti-irow:24;height:12.75pt'><td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
none'><span style='font-size:8.0pt;font-family:"Lucida Console"'><span
<b style='mso-bidi-font-weight:normal'>C4512</b> – assignment operator could not be generated
 
  +
style='mso-spacerun:yes'> </span><b><span style='color:teal'>...</span></b><span
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
style='color:teal'></span></span></p>
Create an explicit assignment operator
 
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
</td></tr><tr style='mso-yfti-irow:25;height:12.75pt'><td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
margin-left:.3in;margin-bottom:.0001pt;mso-layout-grid-align:none;text-autospace:
<b style='mso-bidi-font-weight:normal'>C4530 </b>– C++ exception handler used, but unwind semantics are not enabled. Specify /<span class=SpellE>Ehsc</span>
 
  +
none'><span style='font-size:8.0pt;font-family:"Lucida Console";color:blue'>#<span
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
class=SpellE>endif</span></span><span style='font-size:8.0pt;font-family:
Enable exception handling for the project.
 
  +
"Lucida Console"'> _DEBUG</span></p>
</td></tr><tr style='mso-yfti-irow:26;height:12.75pt'><td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
<p class=MsoNormal style='margin-top:3.0pt;margin-right:0in;margin-bottom:
<b style='mso-bidi-font-weight:normal'>C4610</b> – Object 'class' can never be instantiated - user-defined constructor required
 
  +
3.0pt;margin-left:.05in;text-indent:-2.9pt'>The text after the <span
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
style='font-size:8.0pt;font-family:"Lucida Console";color:blue'>#<span
Create an explicit constructor
 
  +
class=SpellE>endif</span></span> is now illegal.<span
</td></tr><tr style='mso-yfti-irow:27;height:12.75pt'><td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
<b style='mso-bidi-font-weight:normal'>C4663</b> To explicitly <span class=GramE>specialize</span> a template class, use the new syntax.
+
style='mso-spacerun:yes'> </span>To fix, change code to look like this:</p>
  +
<p class=MsoNormal style='margin-top:3.0pt;margin-right:0in;margin-bottom:
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
0in;margin-left:.3in;margin-bottom:.0001pt;mso-layout-grid-align:none;
Add <span style='font-size:8.0pt;font-family:"Lucida Console";color:blue'>template</span><b><span style='font-size:8.0pt;font-family:"Lucida Console";color:teal'>&lt;&gt;</span></b> in front of the class declaration for an explicitly specialized class template.
 
  +
text-autospace:none'><span style='font-size:8.0pt;font-family:"Lucida Console";
</td></tr><tr style='mso-yfti-irow:28'><td width=210 valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt'>
 
  +
color:blue'>#<span class=SpellE>ifdef</span></span><span style='font-size:
<b style='mso-bidi-font-weight:normal'>C4700 </b>– Local variable used without having been initialized
 
  +
8.0pt;font-family:"Lucida Console"'> _DEBUG</span></p>
 
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
 
  +
margin-left:.3in;margin-bottom:.0001pt;mso-layout-grid-align:none;text-autospace:
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
 
  +
none'><span style='font-size:8.0pt;font-family:"Lucida Console"'><span
Be careful with this warning.<span style='mso-spacerun:yes'> </span>It could actually point to a software defect.<span style='mso-spacerun:yes'> </span>The only time this is valid to have is when a variable is passed by reference to a function.<span style='mso-spacerun:yes'> </span>The compiler doesn’t know that it’s okay for the input variable to not be initialized (C++ allows this.)<span style='mso-spacerun:yes'> </span>To remove this warning, initialize the variable before using it.
 
  +
style='mso-spacerun:yes'> </span><b><span style='color:teal'>...</span></b><span
</td></tr><tr style='mso-yfti-irow:29;height:12.75pt'><td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
style='color:teal'></span></span></p>
<b style='mso-bidi-font-weight:normal'>C4701</b> – Local variable 'name' may be used without having been initialized
 
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
margin-left:.3in;margin-bottom:.0001pt;mso-layout-grid-align:none;text-autospace:
See <b style='mso-bidi-font-weight:normal'>C4700</b>
 
  +
none'><span style='font-size:8.0pt;font-family:"Lucida Console";color:blue'>#<span
</td></tr><tr style='mso-yfti-irow:30;height:12.75pt'><td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
class=SpellE>endif</span></span><span style='font-size:8.0pt;font-family:
<b style='mso-bidi-font-weight:normal'>C4702</b> – Unreachable code
 
  +
"Lucida Console"'> <span style='color:green'>// _DEBUG</span></span></p>
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
Remove the dead code, or if the code isn’t dead, fix the control paths.
 
  +
margin-left:.05in;margin-bottom:.0001pt;text-indent:-3.15pt'></p>
</td></tr><tr style='mso-yfti-irow:31;height:12.75pt'><td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
</td>
<b style='mso-bidi-font-weight:normal'>C4706</b> – Assignment within conditional expression
 
  +
</tr>
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
<tr style='mso-yfti-irow:6;height:12.75pt'>
Assignments within conditional expressions should not be made.<span style='mso-spacerun:yes'> </span>Fix the code.
 
</td></tr><tr style='mso-yfti-irow:32;height:12.75pt'><td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
+
<td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
<b style='mso-bidi-font-weight:normal'>C4710</b> – Function not <span class=SpellE>inlined</span>
 
  +
padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
Remove the <span style='font-size:8.0pt;font-family:"Lucida Console";color:blue'>inline </span>keyword.
 
  +
margin-left:40.95pt;margin-bottom:.0001pt;text-indent:-40.5pt'><b
</td></tr><tr style='mso-yfti-irow:33'><td width=210 valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt'>
 
<b style='mso-bidi-font-weight:normal'>C4715 </b>– Not all control paths return a value
+
style='mso-bidi-font-weight:normal'>C4081 </b>– Expected 'token1'; found
  +
'token2'</p>
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
 
  +
</td>
If the compiler is correct, this usually indicates a software defect and the code <span class=GramE>needs</span> to be fixed.<span style='mso-spacerun:yes'> </span>The compiler is sometimes wrong.<span style='mso-spacerun:yes'> </span>For instance, it may not know that a function you are calling never returns (such as <span class=SpellE><span class=GramE>ThrowError</span></span><span class=GramE>(</span>).)<span style='mso-spacerun:yes'> </span>Simply change the code to throw anything immediately after, or simply return.
 
</td></tr><tr style='mso-yfti-irow:34;height:12.75pt'><td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
+
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
  +
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
<b style='mso-bidi-font-weight:normal'>C4800</b> – Forcing value to <span class=SpellE>bool</span> 'true' or 'false' (performance warning)
 
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
+
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  +
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
This happens when trying to convert a BOOL (or <span class=SpellE><span style='font-size: 8.0pt;font-family:"Lucida Console";color:blue'>int</span></span>) to C++ <span class=SpellE><span style='font-size:8.0pt;font-family:"Lucida Console"; color:blue'>bool</span></span>.<span style='mso-spacerun:yes'> </span>Example:
 
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
<span class=SpellE><span style='font-size:8.0pt; font-family:"Lucida Console";color:blue'>bool</span></span><span style='font-size:8.0pt;font-family:"Lucida Console"'> flag <b><span style='color:teal'>=</span></b> <span class=SpellE>fFlag</span><b><span style='color:teal'>;</span></b></span>
 
  +
margin-left:.05in;margin-bottom:.0001pt;text-indent:-3.15pt'>See message</p>
Doing so is a performance issue so the compiler won’t let you even cast to <span class=SpellE><span style='font-size:8.0pt;font-family:"Lucida Console";color:blue'>bool</span></span>.<span style='mso-spacerun:yes'> </span>To fix, do this:
 
  +
</td>
<span class=SpellE><span style='font-size:8.0pt;font-family:"Lucida Console"; color:blue'>bool</span></span><span style='font-size:8.0pt;font-family:"Lucida Console"'> flag <b><span style='color:teal'>=</span></b> <span class=SpellE>fFlag</span> <b><span style='color:teal'>!= </span></b><span style='color:red'>0</span><b><span style='color:teal'>;</span></b></span>
 
  +
</tr>
 
  +
<tr style='mso-yfti-irow:7;height:12.75pt'>
 
</td></tr><tr style='mso-yfti-irow:35;mso-yfti-lastrow:yes;height:12.75pt'><td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
+
<td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
<b style='mso-bidi-font-weight:normal'>C4996</b> – ‘function': was declared deprecated
 
  +
padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
</td><td width=380 valign=top style='width:285.3pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
 
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
Must not use deprecated functions unless explicitly identified in the project development plan as to why.
 
  +
margin-left:40.95pt;margin-bottom:.0001pt;text-indent:-40.5pt'><b
</td></tr></table>
 
  +
style='mso-bidi-font-weight:normal'>C4097</b> – Expected <span class=SpellE>pragma</span>
  +
parameter to be 'token1' or 'token2'</p>
  +
</td>
  +
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
  +
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  +
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  +
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:.05in;margin-bottom:.0001pt;text-indent:-3.15pt'>See message</p>
  +
</td>
  +
</tr>
  +
<tr style='mso-yfti-irow:8'>
  +
<td width=210 valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  +
padding:0in 5.4pt 0in 5.4pt'>
  +
<p class=MsoNormal style='margin-top:2.0pt;margin-right:0in;margin-bottom:
  +
0in;margin-left:.55in;margin-bottom:.0001pt;text-indent:-.55in'><b
  +
style='mso-bidi-font-weight:normal'>C4100 </b>– Unreferenced formal parameter</p>
  +
<p class=MsoNormal style='margin-top:12.0pt;margin-right:0in;margin-bottom:
  +
2.0pt;margin-left:.25in;text-indent:-.25in'></p>
  +
</td>
  +
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
  +
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  +
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  +
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:2.0pt;
  +
margin-left:-.9pt'>There are several ways to fix this:</p>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:2.0pt;
  +
margin-left:17.1pt;text-indent:-.25in;mso-list:l1 level1 lfo4;tab-stops:list 1.5in'><span
  +
style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
  +
Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  +
</span></span></span>Comment out the name of the variable in the
  +
parameter list</p>
  +
<p class=MsoNormal style='margin-top:6.0pt;margin-right:0in;margin-bottom:
  +
2.0pt;margin-left:17.3pt;text-indent:-.25in;mso-list:l1 level1 lfo4;
  +
tab-stops:list 1.5in'><span style='font-family:Symbol;
  +
mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
  +
style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  +
</span></span></span>Reference the variable by itself after the
  +
return statement:</p>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:2.0pt;
  +
margin-left:.5in'><span style='font-size:8.0pt;font-family:"Lucida Console"'>…</span></p>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:2.0pt;
  +
margin-left:.5in'><span style='font-size:8.0pt;font-family:"Lucida Console";
  +
color:blue'>return;</span></p>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:2.0pt;
  +
margin-left:.5in'><span style='font-size:8.0pt;font-family:"Lucida Console";
  +
color:blue'></span></p>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:2.0pt;
  +
margin-left:.5in'><span style='font-size:8.0pt;font-family:"Lucida Console"'>param1;<span
  +
style='color:blue'> </span><span style='color:#00B050'>// empty reference</span><span
  +
style='color:blue'></span></span></p>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:2.0pt;
  +
margin-left:.5in'><span style='font-size:8.0pt;font-family:"Lucida Console"'>}</span></p>
  +
</td>
  +
</tr>
  +
<tr style='mso-yfti-irow:9'>
  +
<td width=210 valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  +
padding:0in 5.4pt 0in 5.4pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:.55in;margin-bottom:.0001pt;text-indent:-.55in'><b
  +
style='mso-bidi-font-weight:normal'>C4101 </b>– Unreferenced local variable</p>
  +
<p class=MsoNormal style='margin-top:2.0pt;margin-right:0in;margin-bottom:
  +
0in;margin-left:.25in;margin-bottom:.0001pt;text-indent:-.25in'><b
  +
style='mso-bidi-font-weight:normal'></b></p>
  +
</td>
  +
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
  +
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  +
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  +
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:2.0pt;
  +
margin-left:-.9pt'>It’s best to just remove the variable.<span
  +
style='mso-spacerun:yes'> </span>If it’s there because it’s used by some other
  +
code that’s currently commented out, remove the variable and code that’s
  +
commented out.<span style='mso-spacerun:yes'> </span>If the variable is
  +
there to view its result in the debugger, then you can disable this
  +
particular instance of the warning by referencing the variable immediately
  +
after the declaration:</p>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:2.0pt;
  +
margin-left:12.6pt'><span style='font-size:8.0pt;font-family:"Lucida Console";
  +
color:blue'>short</span><span style='font-size:8.0pt;font-family:"Lucida Console"'><span
  +
style='mso-spacerun:yes'> </span><span class=SpellE>objectId</span> <b><span
  +
style='color:teal'>=</span></b> <span style='color:red'>0</span><b><span
  +
style='color:teal'>;</span></b> <span class=SpellE>objectId</span><b><span
  +
style='color:teal'>;</span></b> <span style='color:green'>// for debugging</span></span></p>
  +
</td>
  +
</tr>
  +
<tr style='mso-yfti-irow:10;height:12.75pt'>
  +
<td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  +
padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:40.95pt;margin-bottom:.0001pt;text-indent:-40.5pt'><b
  +
style='mso-bidi-font-weight:normal'>C4102</b> – Unreferenced label</p>
  +
</td>
  +
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
  +
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  +
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  +
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:.05in;margin-bottom:.0001pt;text-indent:-3.15pt'>Remove the label</p>
  +
</td>
  +
</tr>
  +
<tr style='mso-yfti-irow:11;height:12.75pt'>
  +
<td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  +
padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:40.95pt;margin-bottom:.0001pt;text-indent:-40.5pt'><b
  +
style='mso-bidi-font-weight:normal'>C4115</b> – Named type definition in
  +
parentheses</p>
  +
</td>
  +
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
  +
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  +
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  +
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:.05in;margin-bottom:.0001pt;text-indent:-3.15pt'>This can happen
  +
if an undefined type is used in a function prototype.<span
  +
style='mso-spacerun:yes'> </span>The compiler thinks you’re defining
  +
variable inside of parenthesis and will generate this warning.<span
  +
style='mso-spacerun:yes'> </span>Check your <span style='font-size:8.0pt;
  +
font-family:"Lucida Console";color:blue'>#include</span> list.</p>
  +
</td>
  +
</tr>
  +
<tr style='mso-yfti-irow:12;height:12.75pt'>
  +
<td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  +
padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:40.95pt;margin-bottom:.0001pt;text-indent:-40.5pt'><b
  +
style='mso-bidi-font-weight:normal'>C4127</b> – Conditional expression is
  +
constant</p>
  +
</td>
  +
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
  +
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  +
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  +
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:.05in;margin-bottom:.0001pt;text-indent:-3.15pt'>This can happen
  +
with some 3<sup>rd</sup> party libraries, but can also happen if we use similar
  +
tricks that expand to compile time constants for conditions.</p>
  +
</td>
  +
</tr>
  +
<tr style='mso-yfti-irow:13;height:12.75pt'>
  +
<td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  +
padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:40.95pt;margin-bottom:.0001pt;text-indent:-40.5pt'><b
  +
style='mso-bidi-font-weight:normal'>C4146</b> – Unary minus operator applied
  +
to unsigned type, result still unsigned</p>
  +
</td>
  +
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
  +
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  +
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  +
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:.05in;margin-bottom:.0001pt;text-indent:-3.15pt'>Should never
  +
happen in our own code.<span style='mso-spacerun:yes'> </span>If it happens
  +
in 3<sup>rd</sup> party code, disable it.</p>
  +
</td>
  +
</tr>
  +
<tr style='mso-yfti-irow:14'>
  +
<td width=210 valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  +
padding:0in 5.4pt 0in 5.4pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:.55in;margin-bottom:.0001pt;text-indent:-.55in'><b
  +
style='mso-bidi-font-weight:normal'>C4189 </b>– Local variable is initialized
  +
by not referenced<b style='mso-bidi-font-weight:normal'></b></p>
  +
</td>
  +
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
  +
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  +
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  +
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:2.0pt;
  +
margin-left:-.9pt'>(see comments for <b style='mso-bidi-font-weight:normal'>C4101</b>)</p>
  +
</td>
  +
</tr>
  +
<tr style='mso-yfti-irow:15;height:12.75pt'>
  +
<td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  +
padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:40.95pt;margin-bottom:.0001pt;text-indent:-40.5pt'><b
  +
style='mso-bidi-font-weight:normal'>C4192</b> – Automatically excluding
  +
'name' while importing type library 'library'</p>
  +
</td>
  +
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
  +
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  +
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  +
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:.05in;margin-bottom:.0001pt;text-indent:-3.15pt'>Use <span
  +
class=SpellE><span style='font-size:8.0pt;font-family:"Lucida Console";
  +
color:blue'>no_auto_exclude</span></span><span style='font-size:8.0pt;
  +
font-family:"Lucida Console";color:blue'> </span>and <span style='font-size:
  +
8.0pt;font-family:"Lucida Console";color:blue'>include(…) #import </span>attributes
  +
to turn <span class=SpellE>of</span> automatic exclusion of duplicates and
  +
specify names explicitly</p>
  +
</td>
  +
</tr>
  +
<tr style='mso-yfti-irow:16;height:12.75pt'>
  +
<td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  +
padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:40.95pt;margin-bottom:.0001pt;text-indent:-40.5pt'><b
  +
style='mso-bidi-font-weight:normal'>C4244</b> – Conversion from 'type1' to
  +
'type2', possible loss of data</p>
  +
</td>
  +
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
  +
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  +
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  +
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:.05in;margin-bottom:.0001pt;text-indent:-3.15pt'>If the lost of
  +
data is okay, then use <span class=SpellE><span style='font-size:8.0pt;
  +
font-family:"Lucida Console";color:blue'>static_cast</span></span> to
  +
explicitly cast the data to the correct type.</p>
  +
</td>
  +
</tr>
  +
<tr style='mso-yfti-irow:17;height:12.75pt'>
  +
<td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  +
padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:40.95pt;margin-bottom:.0001pt;text-indent:-40.5pt'><b
  +
style='mso-bidi-font-weight:normal'>C4245</b> – Conversion from 'type1' to
  +
'type2', signed/unsigned mismatch</p>
  +
</td>
  +
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
  +
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  +
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  +
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:.05in;margin-bottom:.0001pt;text-indent:-3.15pt'>See <b
  +
style='mso-bidi-font-weight:normal'>C4018</b>.<span
  +
style='mso-spacerun:yes'> </span>Make sure you understand how the data is
  +
going to get converted then use <span class=SpellE><span style='font-size:
  +
8.0pt;font-family:"Lucida Console";color:blue'>static_cast</span></span> to
  +
explicitly cast the data to match types.</p>
  +
</td>
  +
</tr>
  +
<tr style='mso-yfti-irow:18;height:12.75pt'>
  +
<td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  +
padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:40.95pt;margin-bottom:.0001pt;text-indent:-40.5pt'><b
  +
style='mso-bidi-font-weight:normal'>C4273</b> – Function' : inconsistent DLL
  +
linkage</p>
  +
</td>
  +
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
  +
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  +
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  +
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:.05in;margin-bottom:.0001pt;text-indent:-3.15pt'>Use consistent <span
  +
class=SpellE><span style='font-size:8.0pt;font-family:"Lucida Console"'>dllimport</span></span><span
  +
style='font-size:8.0pt;font-family:"Lucida Console"'> </span>qualifier <span
  +
style='font-size:8.0pt;font-family:"Lucida Console";color:blue'>__<span
  +
class=SpellE>declspec</span></span>.</p>
  +
</td>
  +
</tr>
  +
<tr style='mso-yfti-irow:19;height:25.5pt'>
  +
<td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  +
padding:0in 5.4pt 0in 5.4pt;height:25.5pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:40.95pt;margin-bottom:.0001pt;text-indent:-40.5pt'><b
  +
style='mso-bidi-font-weight:normal'>C4284</b> – Return type for 'identifier:<span
  +
class=GramE>:operator</span> –&gt;' is not a UDT or reference to a UDT. <br>
  +
Will produce errors if applied using infix notation</p>
  +
</td>
  +
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
  +
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  +
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  +
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:25.5pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:.05in;margin-bottom:.0001pt;text-indent:-3.15pt'>There’s probably
  +
a syntax error here.<span style='mso-spacerun:yes'> </span>Check to ensure
  +
that the <b><span style='font-size:8.0pt;font-family:"Lucida Console";
  +
color:teal'>-&gt;</span></b> operator is being used correctly.<span
  +
style='mso-spacerun:yes'> </span>Is the identifier on the left side valid?</p>
  +
</td>
  +
</tr>
  +
<tr style='mso-yfti-irow:20;height:12.75pt'>
  +
<td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  +
padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:40.95pt;margin-bottom:.0001pt;text-indent:-40.5pt'><b
  +
style='mso-bidi-font-weight:normal'>C4310</b> – Cast truncates constant value</p>
  +
</td>
  +
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
  +
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  +
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  +
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:.05in;margin-bottom:.0001pt;text-indent:-3.15pt'><span
  +
class=GramE>Your</span> using the wrong data type with the constant
  +
value.<span style='mso-spacerun:yes'> </span>Either pick constant in range
  +
or change the data type.</p>
  +
</td>
  +
</tr>
  +
<tr style='mso-yfti-irow:21;height:12.75pt'>
  +
<td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  +
padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:40.95pt;margin-bottom:.0001pt;text-indent:-40.5pt'><b
  +
style='mso-bidi-font-weight:normal'>C4506</b> – No definition for inline
  +
function 'function'</p>
  +
</td>
  +
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
  +
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  +
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  +
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:.05in;margin-bottom:.0001pt;text-indent:-3.15pt'>See message</p>
  +
</td>
  +
</tr>
  +
<tr style='mso-yfti-irow:22;height:12.75pt'>
  +
<td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  +
padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:40.95pt;margin-bottom:.0001pt;text-indent:-40.5pt'><b
  +
style='mso-bidi-font-weight:normal'>C4510 </b>– default constructor could not
  +
be generated</p>
  +
</td>
  +
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
  +
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  +
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  +
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:.05in;margin-bottom:.0001pt;text-indent:-3.15pt'>Create an
  +
explicit default constructor</p>
  +
</td>
  +
</tr>
  +
<tr style='mso-yfti-irow:23;height:12.75pt'>
  +
<td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  +
padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:40.95pt;margin-bottom:.0001pt;text-indent:-40.5pt'><b
  +
style='mso-bidi-font-weight:normal'>C4511</b> – copy constructor could not be
  +
generated</p>
  +
</td>
  +
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
  +
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  +
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  +
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:.05in;margin-bottom:.0001pt;text-indent:-3.15pt'>Create an
  +
explicit copy constructor</p>
  +
</td>
  +
</tr>
  +
<tr style='mso-yfti-irow:24;height:12.75pt'>
  +
<td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  +
padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:40.95pt;margin-bottom:.0001pt;text-indent:-40.5pt'><b
  +
style='mso-bidi-font-weight:normal'>C4512</b> – assignment operator could not
  +
be generated</p>
  +
</td>
  +
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
  +
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  +
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  +
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:.05in;margin-bottom:.0001pt;text-indent:-3.15pt'>Create an
  +
explicit assignment operator</p>
  +
</td>
  +
</tr>
  +
<tr style='mso-yfti-irow:25;height:12.75pt'>
  +
<td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  +
padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:40.95pt;margin-bottom:.0001pt;text-indent:-40.5pt'><b
  +
style='mso-bidi-font-weight:normal'>C4530 </b>– C++ exception handler used,
  +
but unwind semantics are not enabled. Specify /<span class=SpellE>Ehsc</span></p>
  +
</td>
  +
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
  +
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  +
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  +
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:.05in;margin-bottom:.0001pt;text-indent:-3.15pt'>Enable exception
  +
handling for the project.</p>
  +
</td>
  +
</tr>
  +
<tr style='mso-yfti-irow:26;height:12.75pt'>
  +
<td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  +
padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:40.95pt;margin-bottom:.0001pt;text-indent:-40.5pt'><b
  +
style='mso-bidi-font-weight:normal'>C4610</b> – Object 'class' can never be
  +
instantiated - user-defined constructor required</p>
  +
</td>
  +
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
  +
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  +
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  +
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:.05in;margin-bottom:.0001pt;text-indent:-3.15pt'>Create an
  +
explicit constructor</p>
  +
</td>
  +
</tr>
  +
<tr style='mso-yfti-irow:27;height:12.75pt'>
  +
<td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  +
padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:40.95pt;margin-bottom:.0001pt;text-indent:-40.5pt'><b
  +
style='mso-bidi-font-weight:normal'>C4663</b> – To explicitly <span
  +
class=GramE>specialize</span> a template class, use the new syntax.</p>
  +
</td>
  +
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
  +
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  +
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  +
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:.05in;margin-bottom:.0001pt;text-indent:-3.15pt'>Add <span
  +
style='font-size:8.0pt;font-family:"Lucida Console";color:blue'>template</span><b><span
  +
style='font-size:8.0pt;font-family:"Lucida Console";color:teal'>&lt;&gt;</span></b>
  +
in front of the class declaration for an explicitly specialized class
  +
template.</p>
  +
</td>
  +
</tr>
  +
<tr style='mso-yfti-irow:28'>
  +
<td width=210 valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  +
padding:0in 5.4pt 0in 5.4pt'>
  +
<p class=MsoNormal style='margin-top:2.0pt;margin-right:0in;margin-bottom:
  +
0in;margin-left:.55in;margin-bottom:.0001pt;text-indent:-.55in'><b
  +
style='mso-bidi-font-weight:normal'>C4700 </b>– Local variable used without
  +
having been initialized<b style='mso-bidi-font-weight:normal'></b></p>
  +
<p class=MsoNormal style='margin-top:2.0pt;margin-right:0in;margin-bottom:
  +
0in;margin-left:.25in;margin-bottom:.0001pt;text-indent:-.25in'><b
  +
style='mso-bidi-font-weight:normal'></b></p>
  +
</td>
  +
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
  +
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  +
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  +
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
  +
<p class=MsoNormal style='margin-top:0in'>Be careful with this warning.<span
  +
style='mso-spacerun:yes'> </span>It could actually point to a software
  +
defect.<span style='mso-spacerun:yes'> </span>The only time this is valid to
  +
have is when a variable is passed by reference to a function.<span
  +
style='mso-spacerun:yes'> </span>The compiler doesn’t know that it’s okay
  +
for the input variable to not be initialized (C++ allows this.)<span
  +
style='mso-spacerun:yes'> </span>To remove this warning, initialize the
  +
variable before using it.</p>
  +
</td>
  +
</tr>
  +
<tr style='mso-yfti-irow:29;height:12.75pt'>
  +
<td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  +
padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:40.95pt;margin-bottom:.0001pt;text-indent:-40.5pt'><b
  +
style='mso-bidi-font-weight:normal'>C4701</b> – Local variable 'name' may be
  +
used without having been initialized</p>
  +
</td>
  +
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
  +
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  +
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  +
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:.05in;margin-bottom:.0001pt;text-indent:-3.15pt'>See <b
  +
style='mso-bidi-font-weight:normal'>C4700</b></p>
  +
</td>
  +
</tr>
  +
<tr style='mso-yfti-irow:30;height:12.75pt'>
  +
<td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  +
padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:40.95pt;margin-bottom:.0001pt;text-indent:-40.5pt'><b
  +
style='mso-bidi-font-weight:normal'>C4702</b> – Unreachable code</p>
  +
</td>
  +
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
  +
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  +
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  +
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:.05in;margin-bottom:.0001pt;text-indent:-3.15pt'>Remove the dead
  +
code, or if the code isn’t dead, fix the control paths.</p>
  +
</td>
  +
</tr>
  +
<tr style='mso-yfti-irow:31;height:12.75pt'>
  +
<td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  +
padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:40.95pt;margin-bottom:.0001pt;text-indent:-40.5pt'><b
  +
style='mso-bidi-font-weight:normal'>C4706</b> – Assignment within conditional
  +
expression</p>
  +
</td>
  +
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
  +
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  +
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  +
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:.05in;margin-bottom:.0001pt;text-indent:-3.15pt'>Assignments within
  +
conditional expressions should not be made.<span style='mso-spacerun:yes'>
  +
</span>Fix the code.</p>
  +
</td>
  +
</tr>
  +
<tr style='mso-yfti-irow:32;height:12.75pt'>
  +
<td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  +
padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:40.95pt;margin-bottom:.0001pt;text-indent:-40.5pt'><b
  +
style='mso-bidi-font-weight:normal'>C4710</b> – Function not <span
  +
class=SpellE>inlined</span></p>
  +
</td>
  +
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
  +
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  +
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  +
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:.05in;margin-bottom:.0001pt;text-indent:-3.15pt'>Remove the <span
  +
style='font-size:8.0pt;font-family:"Lucida Console";color:blue'>inline </span>keyword.</p>
  +
</td>
  +
</tr>
  +
<tr style='mso-yfti-irow:33'>
  +
<td width=210 valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  +
padding:0in 5.4pt 0in 5.4pt'>
  +
<p class=MsoNormal style='margin-top:2.0pt;margin-right:0in;margin-bottom:
  +
0in;margin-left:.55in;margin-bottom:.0001pt;text-indent:-.55in'><b
  +
style='mso-bidi-font-weight:normal'>C4715 </b>– Not all control paths return
  +
a value<b style='mso-bidi-font-weight:normal'></b></p>
  +
</td>
  +
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
  +
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  +
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  +
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
  +
<p class=MsoNormal style='margin-top:0in'>If the compiler is correct, this usually
  +
indicates a software defect and the code <span class=GramE>needs</span> to be
  +
fixed.<span style='mso-spacerun:yes'> </span>The compiler is sometimes
  +
wrong.<span style='mso-spacerun:yes'> </span>For instance, it may not know
  +
that a function you are calling never returns (such as <span class=SpellE><span
  +
class=GramE>ThrowError</span></span><span class=GramE>(</span>).)<span
  +
style='mso-spacerun:yes'> </span>Simply change the code to throw anything
  +
immediately after, or simply return.</p>
  +
</td>
  +
</tr>
  +
<tr style='mso-yfti-irow:34;height:12.75pt'>
  +
<td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  +
padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:40.95pt;margin-bottom:.0001pt;text-indent:-40.5pt'><b
  +
style='mso-bidi-font-weight:normal'>C4800</b> – Forcing value to <span
  +
class=SpellE>bool</span> 'true' or 'false' (performance warning)</p>
  +
</td>
  +
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
  +
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  +
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  +
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:.05in;margin-bottom:.0001pt;text-indent:-3.15pt'>This happens
  +
when trying to convert a BOOL (or <span class=SpellE><span style='font-size:
  +
8.0pt;font-family:"Lucida Console";color:blue'>int</span></span>) to C++ <span
  +
class=SpellE><span style='font-size:8.0pt;font-family:"Lucida Console";
  +
color:blue'>bool</span></span>.<span style='mso-spacerun:yes'>
  +
</span>Example:</p>
  +
<p class=MsoNormal style='margin-left:.5in;mso-layout-grid-align:none;
  +
text-autospace:none'><span class=SpellE><span style='font-size:8.0pt;
  +
font-family:"Lucida Console";color:blue'>bool</span></span><span
  +
style='font-size:8.0pt;font-family:"Lucida Console"'> flag <b><span
  +
style='color:teal'>=</span></b> <span class=SpellE>fFlag</span><b><span
  +
style='color:teal'>;</span></b><span style='color:teal'></span></span></p>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:.05in;margin-bottom:.0001pt;text-indent:-3.15pt'>Doing so is a performance
  +
issue so the compiler won’t let you even cast to <span class=SpellE><span
  +
style='font-size:8.0pt;font-family:"Lucida Console";color:blue'>bool</span></span>.<span
  +
style='mso-spacerun:yes'> </span>To fix, do this:</p>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:.5in;margin-bottom:.0001pt;mso-layout-grid-align:none;text-autospace:
  +
none'><span class=SpellE><span style='font-size:8.0pt;font-family:"Lucida Console";
  +
color:blue'>bool</span></span><span style='font-size:8.0pt;font-family:"Lucida Console"'>
  +
flag <b><span style='color:teal'>=</span></b> <span class=SpellE>fFlag</span>
  +
<b><span style='color:teal'>!= </span></b><span style='color:red'>0</span><b><span
  +
style='color:teal'>;</span></b><span style='color:teal'></span></span></p>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:.05in;margin-bottom:.0001pt;text-indent:-3.15pt'></p>
  +
</td>
  +
</tr>
  +
<tr style='mso-yfti-irow:35;mso-yfti-lastrow:yes;height:12.75pt'>
  +
<td width=210 nowrap valign=top style='width:157.5pt;border:solid windowtext 1.0pt;
  +
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  +
padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:40.95pt;margin-bottom:.0001pt;text-indent:-40.5pt'><b
  +
style='mso-bidi-font-weight:normal'>C4996</b> – ‘function': was declared
  +
deprecated</p>
  +
</td>
  +
<td width=380 valign=top style='width:285.3pt;border-top:none;border-left:
  +
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  +
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  +
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.75pt'>
  +
<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in;
  +
margin-left:.05in;margin-bottom:.0001pt;text-indent:-3.15pt'>Must not use
  +
deprecated functions unless explicitly identified in the project development plan
  +
as to why.</p>
  +
</td>
  +
</tr>
  +
</table>
   
 
===Warning of Unfinished Code===
 
===Warning of Unfinished Code===
Do not use compiler warnings as a way to indicate and track code that needs to be finished. Builds cannot have Warnings in them. Instead, to remind yourself of unfinished code, use #pragma message.
+
Do not use compiler warnings as a way to indicate and track code that needs to be finished. Builds cannot have Warnings in them. Instead, to remind yourself of unfinished code, use #pragma message.
[[Category:Cheat]]
 

Please note that all contributions to the Zuma Lifeguard Wiki are considered to be released under the CC-BY-SA

Cancel Editing help (opens in new window)