
<!DOCTYPE html>
<!--
 Generated by Apache Maven Doxia at 2016-01-27
 Rendered using Reflow Maven Skin 1.1.1 (http://andriusvelykis.github.io/reflow-maven-skin)
-->
<html  xml:lang="en" lang="en">

	<head>
		<meta charset="UTF-8" />
		<title>Apache Trafodion C++ Coding Guidelines</title>
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<meta name="description" content="" />
		<meta http-equiv="content-language" content="en" />

		<link href="http://netdna.bootstrapcdn.com/bootswatch/2.3.2/cerulean/bootstrap.min.css" rel="stylesheet" />
		<link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-responsive.min.css" rel="stylesheet" />
		<link href="./css/bootswatch.css" rel="stylesheet" />
		<link href="./css/reflow-skin.css" rel="stylesheet" />

		<link href="http://yandex.st/highlightjs/7.5/styles/default.min.css" rel="stylesheet" />

		<link href="./css/lightbox.css" rel="stylesheet" />

		<link href="./css/site.css" rel="stylesheet" />
		<link href="./css/print.css" rel="stylesheet" media="print" />

		<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
		<!--[if lt IE 9]>
			<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
		<![endif]-->



		<!-- Google Analytics -->
		<script type="text/javascript">

			var _gaq = _gaq || [];
			_gaq.push(['_setAccount', 'UA-72491210-1']);
			_gaq.push(['_trackPageview']);

			(function() {
				var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
				ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
				var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
			})();

		</script>
		</head>

	<body class="page-cplusplus-coding-guidelines project-trafodion" data-spy="scroll" data-offset="60" data-target="#toc-scroll-target">

		<div class="navbar navbar-fixed-top">
			<div class="navbar-inner">
				<div class="container">
					<a class="btn btn-navbar" data-toggle="collapse" data-target="#top-nav-collapse">
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
					</a>
					<a class="brand" href="index.html">Apache <span class="color-highlight">Trafodion</span></a>
					<div class="nav-collapse collapse" id="top-nav-collapse">
						<ul class="nav pull-right">
							<li ><a href="download.html" title="Download">Download</a></li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">About <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="index.html" title="Project Overview">Project Overview</a></li>
									<li ><a href="new-features.html" title="New Features">New Features</a></li>
									<li ><a href="roadmap.html" title="Roadmap">Roadmap</a></li>
									<li ><a href="performance.html" title="Performance">Performance</a></li>
									<li ><a href="http:divider" title=""></a></li>
									<li ><a href="team-list.html" title="Team">Team</a></li>
									<li ><a href="presentations.html" title="Presentations">Presentations</a></li>
									<li ><a href="mail-lists.html" title="Mailing List">Mailing List</a></li>
									<li ><a href="http:divider" title=""></a></li>
									<li ><a href="source-repository.html" title="Source Repository">Source Repository</a></li>
									<li ><a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a></li>
									<li ><a href="license.html" title="License">License</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Using <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="quickstart.html" title="Quick Start">Quick Start</a></li>
									<li ><a href="download.html" title="Download">Download</a></li>
									<li ><a href="install.html" title="Install">Install</a></li>
									<li ><a href="uninstall.html" title="Uninstall">Uninstall</a></li>
									<li ><a href="management.html" title="Managing Trafodion">Managing Trafodion</a></li>
									<li ><a href="http:divider" title=""></a></li>
									<li ><a href="documentation.html" title="Documentation">Documentation</a></li>
									<li ><a href="port-assignment.html" title="Port Assignments">Port Assignments</a></li>
									<li ><a href="faq.html" title="FAQ">FAQ</a></li>
									<li ><a href="release-notes.html" title="Release Notes">Release Notes</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Features <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="architecture-overview.html" title="Architecture Overview">Architecture Overview</a></li>
									<li ><a href="http:divider" title=""></a></li>
									<li ><a href="https://blueprints.launchpad.net/trafodion/+spec/security-ansi-schemas" title="ANSI Schema Support" class="externalLink">ANSI Schema Support</a></li>
									<li ><a href="https://blueprints.launchpad.net/trafodion/+spec/ustat-automation" title="Automated Update Statistics" class="externalLink">Automated Update Statistics</a></li>
									<li ><a href="https://blueprints.launchpad.net/trafodion/+spec/bulkunload" title="Bulk Unload" class="externalLink">Bulk Unload</a></li>
									<li ><a href="https://wiki.trafodion.org/wiki/index.php/Trafodion_Manageability#Logging_Events" title="Event Handling" class="externalLink">Event Handling</a></li>
									<li ><a href="https://blueprints.launchpad.net/trafodion/+spec/hybrid-query-cache" title="Hybrid Query Cache" class="externalLink">Hybrid Query Cache</a></li>
									<li ><a href="https://blueprints.launchpad.net/trafodion/+spec/identity-column" title="Identity Column" class="externalLink">Identity Column</a></li>
									<li ><a href="https://wiki.trafodion.org/wiki/index.php/Creating_Statistics_During_Bulk_Load" title="Immediate Update Statistics" class="externalLink">Immediate Update Statistics</a></li>
									<li ><a href="https://blueprints.launchpad.net/trafodion/+spec/lob-support" title="Large Object (LOB)" class="externalLink">Large Object (LOB)</a></li>
									<li ><a href="https://blueprints.launchpad.net/trafodion/+spec/ddl-query-invalidation" title="Metadata Query Invalidation" class="externalLink">Metadata Query Invalidation</a></li>
									<li ><a href="https://cwiki.apache.org/confluence/display/TRAFODION/Cmp-divisioning" title="Multi-Temperature Data" class="externalLink">Multi-Temperature Data</a></li>
									<li ><a href="https://blueprints.launchpad.net/trafodion/+spec/access-external-hbase-tables" title="Native HBase Tables" class="externalLink">Native HBase Tables</a></li>
									<li ><a href="docs/odb_user/index.html" title="ODB">ODB</a></li>
									<li ><a href="https://blueprints.launchpad.net/trafodion/+spec/sql-query-cancel" title="Query Cancel" class="externalLink">Query Cancel</a></li>
									<li ><a href="https://blueprints.launchpad.net/trafodion/+spec/security-privilege-updates" title="Privilege Checking" class="externalLink">Privilege Checking</a></li>
									<li ><a href="https://wiki.trafodion.org/wiki/index.php/Trafodion_Manageability" title="Repository" class="externalLink">Repository</a></li>
									<li ><a href="https://blueprints.launchpad.net/trafodion/+spec/enable-get-statistics-thru-rms" title="Runtime Management System" class="externalLink">Runtime Management System</a></li>
									<li ><a href="https://blueprints.launchpad.net/trafodion/+spec/sequence-numbers" title="Sequence Numbers" class="externalLink">Sequence Numbers</a></li>
									<li ><a href="https://blueprints.launchpad.net/trafodion/+spec/skew-buster" title="Skew Buster" class="externalLink">Skew Buster</a></li>
									<li ><a href="https://wiki.trafodion.org/wiki/index.php/Tutorial:_The_object-oriented_UDF_interface" title="Table-Oriented UDF" class="externalLink">Table-Oriented UDF</a></li>
									<li ><a href="https://wiki.trafodion.org/wiki/index.php/Data_Loading#Trickle_Loading_Data_Into_Trafodion_Tables" title="Trickle Load" class="externalLink">Trickle Load</a></li>
									<li ><a href="http:divider" title=""></a></li>
									<li ><a href="https://wiki.trafodion.org/wiki/index.php/Backup_and_Restore" title="Backup/Restore Utility" class="externalLink">Backup/Restore Utility</a></li>
									<li ><a href="https://wiki.trafodion.org/wiki/index.php/Metadata_Cleanup" title="Metadata Cleanup Utility" class="externalLink">Metadata Cleanup Utility</a></li>
								</ul>
							</li>
							<li class="dropdown active">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Contributing <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="contribute.html" title="Contribute">Contribute</a></li>
									<li ><a href="advocate.html" title="Advocate">Advocate</a></li>
									<li ><a href="develop.html" title="Develop">Develop</a></li>
									<li ><a href="testing.html" title="Test">Test</a></li>
									<li ><a href="merge.html" title="Merge">Merge</a></li>
									<li ><a href="release.html" title="Release">Release</a></li>
									<li ><a href="http:divider" title=""></a></li>
									<li ><a href="create-dev-environment.html" title="Create Dev Environment">Create Dev Environment</a></li>
									<li ><a href="manage-dev-environment.html" title="Manage Dev Environment">Manage Dev Environment</a></li>
									<li ><a href="setup-build-environment.html" title="Setup Build Environment">Setup Build Environment</a></li>
									<li ><a href="build.html" title="Build Trafodion">Build Trafodion</a></li>
									<li ><a href="http:divider" title=""></a></li>
									<li ><a href="code.html" title="Modify Code">Modify Code</a></li>
									<li ><a href="tests.html" title="Modify Tests">Modify Tests</a></li>
									<li ><a href="document.html" title="Modify Documentation">Modify Documentation</a></li>
									<li ><a href="website.html" title="Modify Web Site">Modify Web Site</a></li>
									<li ><a href="wiki.html" title="Modify Wiki Pages">Modify Wiki Pages</a></li>
									<li ><a href="http:divider" title=""></a></li>
									<li class="active"><a href="" title="C++ Coding Guidelines">C++ Coding Guidelines</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="http://incubator.apache.org/projects/trafodion.html" title="Project Status" target="_blank" class="externalLink">Project Status</a></li>
									<li ><a href="http://www.apache.org/foundation/how-it-works.html" title="Apache Foundation" target="_blank" class="externalLink">Apache Foundation</a></li>
									<li ><a href="http://www.apache.org/licenses/" title="Apache License" target="_blank" class="externalLink">Apache License</a></li>
									<li ><a href="http://www.apache.org/security/" title="Apache Security" target="_blank" class="externalLink">Apache Security</a></li>
									<li ><a href="http:divider" title=""></a></li>
									<li ><a href="http://www.apache.org/foundation/sponsorship.html" title="Sponsorship" target="_blank" class="externalLink">Sponsorship</a></li>
									<li ><a href="http://www.apache.org/foundation/thanks.html" title="Thanks" target="_blank" class="externalLink">Thanks</a></li>
								</ul>
							</li>
						</ul>
					</div><!--/.nav-collapse -->
				</div>
			</div>
		</div>

	<div class="container">

	<!-- Masthead
	================================================== -->

	<header>
	<div class="jumbotron subhead">
		<div class="row" id="banner">
			<div class="span12">
				<div class="pull-left">
					<a href="index.html" id="bannerLeft"><h1>Apache <span class="color-highlight">Trafodion</span></h1></a>
					<p class="lead">Transactional SQL-on-Hadoop Database</p>
				</div>
				<div class="pull-right">
				</div>
			</div>
		</div>
	</div>
		<div>
			<ul class="breadcrumb">
				<li><a href="index.html" title="Trafodion">Trafodion</a></li>
				<li class="divider">/</li>
				<li>C++ Coding Guidelines</li>
			</ul>
		</div>
		<hr class="toc-separator" />
		<div id="toc-bar" class="navbar" data-spy="affix" data-offset-top="250">
			<div class="navbar-inner">
				<div id="toc-scroll-target" class="container">
					<a class="btn btn-navbar" data-toggle="collapse" data-target="#toc-nav-collapse">
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
					</a>
					<div class="nav-collapse collapse" id="toc-nav-collapse">
						<ul id="toc" class="nav">
						<li class="dropdown">
							<a href="#header_files" title="Header Files" class="dropdown-toggle" role="button" data-toggle="dropdown" data-target="#">Header Files <b class="caret"></b></a>
							<ul class="dropdown-menu" role="menu">
								<!-- Repeat the item, otherwise it is not clickable as the dropdown root -->
								<li><a href="#header_files" title="Header Files">Header Files</a></li>
								<li class="divider"></li>
								<li><a href="#Including_Standard_Header_Files" title="Including Standard Header Files">Including Standard Header Files</a></li>
								<li><a href="#Include_Guards" title="Include Guards">Include Guards</a></li>

							</ul>
						</li>
						<li class="divider-vertical"></li>
						<li class="dropdown">
							<a href="#variable_declaration_and_naming_standards" title="Variable Declaration and Naming Standards" class="dropdown-toggle" role="button" data-toggle="dropdown" data-target="#">Variable Declaration and Naming Standards <b class="caret"></b></a>
							<ul class="dropdown-menu" role="menu">
								<!-- Repeat the item, otherwise it is not clickable as the dropdown root -->
								<li><a href="#variable_declaration_and_naming_standards" title="Variable Declaration and Naming Standards">Variable Declaration and Naming Standards</a></li>
								<li class="divider"></li>
								<li><a href="#Class_Member_Variable_Names" title="Class Member Variable Names">Class Member Variable Names</a></li>
								<li><a href="#Function_Names" title="Function Names">Function Names</a></li>
								<li><a href="#Enums" title="Enums">Enums</a></li>
								<li><a href="#Boolean_Variables" title="Boolean Variables">Boolean Variables</a></li>
								<li><a href="#Constants" title="Constants">Constants</a></li>
								<li><a href="#Namespace_Names" title="Namespace Names">Namespace Names</a></li>

							</ul>
						</li>
						<li class="divider-vertical"></li>
						<li class="dropdown">
							<a href="#indentation_and_formatting" title="Indentation and Formatting" class="dropdown-toggle" role="button" data-toggle="dropdown" data-target="#">Indentation and Formatting <b class="caret"></b></a>
							<ul class="dropdown-menu" role="menu">
								<!-- Repeat the item, otherwise it is not clickable as the dropdown root -->
								<li><a href="#indentation_and_formatting" title="Indentation and Formatting">Indentation and Formatting</a></li>
								<li class="divider"></li>
								<li><a href="#Indentation" title="Indentation">Indentation</a></li>

							</ul>
						</li>
						<li class="divider-vertical"></li>
						<li class="dropdown">
							<a href="#comments" title="Comments" class="dropdown-toggle" role="button" data-toggle="dropdown" data-target="#">Comments <b class="caret"></b></a>
							<ul class="dropdown-menu" role="menu">
								<!-- Repeat the item, otherwise it is not clickable as the dropdown root -->
								<li><a href="#comments" title="Comments">Comments</a></li>
								<li class="divider"></li>
								<li><a href="#Comment_Style" title="Comment Style">Comment Style</a></li>
								<li><a href="#WhenWhere_Comments_Should_Be_Used" title="When/Where Comments Should Be Used">When/Where Comments Should Be Used</a></li>

							</ul>
						</li>
						<li class="divider-vertical"></li>
						<li class="dropdown">
							<a href="#error_handling" title="Error Handling" class="dropdown-toggle" role="button" data-toggle="dropdown" data-target="#">Error Handling <b class="caret"></b></a>
							<ul class="dropdown-menu" role="menu">
								<!-- Repeat the item, otherwise it is not clickable as the dropdown root -->
								<li><a href="#error_handling" title="Error Handling">Error Handling</a></li>
								<li class="divider"></li>
								<li><a href="#Asserts" title="Asserts">Asserts</a></li>
								<li><a href="#Error_ReturnRetrieval" title="Error Return/Retrieval">Error Return/Retrieval</a></li>
								<li><a href="#Exception_Handling" title="Exception Handling">Exception Handling</a></li>

							</ul>
						</li>
		<li class="divider-vertical"></li>
		<li class="dropdown">
			<a href="#" title="More&hellip;" class="dropdown-toggle" role="button" data-toggle="dropdown" data-target="#">&hellip; <b class="caret"></b></a>
			<ul class="dropdown-menu" role="menu">
								<li class="dropdown-submenu">
									<a href="#general_guidelines" title="General Guidelines">General Guidelines</a>
									<ul class="dropdown-menu" role="menu">
								<li><a href="#Casting" title="Casting">Casting</a></li>
								<li><a href="#Types" title="Types">Types</a></li>

									</ul>
								</li>

			</ul>
		</li>
						</ul>
					</div>
				</div>
			</div>
		</div>
	</header>

	<div class="main-body">
	<div class="row">
		<div class="span12">
			<div class="body-content">
<!-- Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the 
  License. --> 
<p>These are the C++ coding guidelines that are part of the acceptance criteria for code submitted to the Trafodion. Trafodion reviewers use these guidelines when reviewing changes.</p> 
<p>The guidelines describe practices that are either required or preferred. In addition, areas where there is no preference between two or more practices are described.</p> 
<p>Trafodion is composed of several distinct sub-projects, some of which have coding guidelines that differ from the Trafodion standard; for example, a requirement in most areas of the code may be only preferred in others.</p> 
<p>There may also be existing code that violates one or more of the published requirements. The intent is to correct these over time, and corrections are encouraged when changing code to make a fix or implement new functionality. However, changes that are solely coding guideline changes are not recommended since this places undue burden on the reviewers.</p> 
<div class="page-header">
 <h1 id="header_files">Header Files</h1>
</div> 
<p>Keep <b><tt>#include</tt></b> directives to a minimum in header files. </p> 
<p>You may forward declare classes and structs when the only use within the header file is a pointer or reference. While includes should be kept to a minimum, if something is used in a header file and cannot be forward declared, it must be explicitly included. </p> 
<p>All files, headers and implementation, should include everything they need to be self-sufficient. They should never assume something will be pre-included. In other words, the contents of a header file should compile cleanly by itself. To help ensure this, all implementation files should include their respective header file first.</p> 
<p>Header files should not contain declarations for public items that are only used by the implementation file. Public items that are require in the implementation file but not the header file should be declared in the implementation file. The preference is NOT to create header files that consist only of includes of other header files.</p> 
<p>Declare as little as possible in the header file and keep as much of the actual implementation private as is reasonable. For instance, don’t include in a header file declarations of types, enums, and functions that are only referenced by the implementation file.</p> 
<div class="section"> 
 <h2 id="Including_Standard_Header_Files">Including Standard Header Files</h2> 
 <p>The preference is for C++ style includes over C style includes for standard header files.</p> 
 <div class="source"> 
  <div class="source"> 
   <pre>//Preferred
#include &lt;cstdio&gt;
//Accepted
#include &lt;stdio.h&gt;
</pre> 
  </div> 
 </div> 
</div> 
<div class="section"> 
 <h2 id="Include_Guards">Include Guards</h2> 
 <p>All header files must use include guards. The name of the include guard <b><tt>#define</tt></b> should be the filename in all uppercase, with underscore used in place of periods.</p> 
 <p>For instance, if the header file is named <b><tt>ServerInterface_ODBC.h</tt></b>, the header file should begin and end as follows:</p> 
 <div class="source"> 
  <div class="source"> 
   <pre>#ifndef SERVERINTERFACE_ODBC_H
#define SERVERINTERFACE_ODBC_H
...
#endif /* SERVERINTERFACE_ODBC_H */
</pre> 
  </div> 
 </div> 
 <p>Comments following the <b><tt>#endif</tt></b> indicating the include guard are preferred.</p> 
 <h1 id="variable_declaration_and_naming_standards">Variable Declaration and Naming Standards</h1> 
 <p>Trafodion uses a combination of Pascal and Camel case. </p> 
 <ul> 
  <li>Pascal case means that the first letter in each word in an identifier is capitalized.</li> 
  <li>Camel case is similar except the first letter is in lower case.</li> 
 </ul> 
 <p>For both, underscores are <b>not</b> used to separate words. The general rule is that identifiers with local scope start with a lower case letter and identifiers with global scope start with an upper case letter.</p> 
 <div class="source"> 
  <div class="source"> 
   <pre>//Pascal case
class AuthenticationMessage; 
//Camel case (aka lower Camel case or camelCase)
int logonCount; 
Class Names
</pre> 
  </div> 
 </div> 
 <p>Class names should be Pascal case and should describe the object contents (not what it does), with as little abbreviation as possible. When names include acronyms, the acronyms should be in all upper case.</p> 
 <p><b>Acceptable Examples</b></p> 
 <div class="source"> 
  <div class="source"> 
   <pre>//Preferred

class SQLSessionContext; // an object that contains the context for a SQL session
class PrivilegeList; // a list of privileges
</pre> 
  </div> 
 </div> 
 <p><b>Poor Examples</b></p> 
 <div class="source"> 
  <div class="source"> 
   <pre>class OutputInfo; // Doesn’t describe class contents, no context
class ReadTableDef; // Describes what class does, not contents
class Cmdline_Args; // Prefer Pascal case, no underscore, for class names
</pre> 
  </div> 
 </div> 
</div> 
<div class="section"> 
 <h2 id="Class_Member_Variable_Names">Class Member Variable Names</h2> 
 <p>Private member data variables should be suffixed with an underscore and should use Camel case. When names include acronyms, the acronyms should be in all upper or all lower case, dependent on which case the first letter should be.</p> 
 <p><b>Example</b></p> 
 <div class="source"> 
  <div class="source"> 
   <pre>class Employee
{
public:
   Employee ();
private:
   std::string firstName_; 
   std::string lastName_; 
   uint16_t    departmentNumber_;
   std::string departmentName_;
   uint32_t    irsSSN_;
}
</pre> 
  </div> 
 </div> 
</div> 
<div class="section"> 
 <h2 id="Function_Names">Function Names</h2> 
 <p>Class member functions and static file functions should use Camel case. External non-class functions should use Pascal case. Except for constructors, destructors, and operators, the function name should include a verb that describes the action the function is performing.</p> 
 <p><b>Good Examples</b></p> 
 <div class="source"> 
  <div class="source"> 
   <pre>//Class member functions
int32_t getSalary() const;
int32_t setAuthID();
int32_t closeAllCursors();
</pre> 
  </div> 
 </div> 
 <p><b>Bad Examples</b></p> 
 <div class="source"> 
  <div class="source"> 
   <pre>// Is it setting break enabled, returning it or ???
int32_t SQLCLI_BreakEnabled();
</pre> 
  </div> 
 </div> 
</div> 
<div class="section"> 
 <h2 id="Enums">Enums</h2> 
 <p>Enum types should use Pascal case and describe the class of enums. If the enum is declared outside of a class, the type name should include an indication of the scope of the enums.</p> 
 <p>Enums themselves should be declared as all upper case. The names may begin with a common prefix or be independent, depending on the usage.</p> 
 <p>When enums represent an arbitrary set of return values (that is, error codes, state codes, etc.), then avoid the values -1, 0, and 1 if using weakly typed enums, to reduce the chance of matches with Booleans or uninitialized variables.</p> 
 <p>The preference is to declare enums as strongly typed.</p> 
 <div class="source"> 
  <div class="source"> 
   <pre>enum class EnumName {...};
</pre> 
  </div> 
 </div> 
</div> 
<div class="section"> 
 <h2 id="Boolean_Variables">Boolean Variables</h2> 
 <p>Boolean variables names should include a verb, state, and optionally a noun (object whose state is in question) indicating the nature of the Boolean. Any combination is acceptable, however verbState is the most common.</p> 
 <p><b>Good Examples</b></p> 
 <div class="source"> 
  <div class="source"> 
   <pre>bool isValid;           // verbState
bool isValidTable;      // verbStateNoun
bool tableIsDroppable;  // nounVerbState
bool hasData;           // verbState
</pre> 
  </div> 
 </div> 
 <p><b>Bad Examples</b></p> 
 <div class="source"> 
  <div class="source"> 
   <pre>bool valid;
bool tableState;
bool empty;
</pre> 
  </div> 
 </div> 
 <p>Functions that return a Boolean should also have names of the form verbState or verbStateNoun if the functions return state information. (This naming standard does not apply to functions returning Boolean as indication of success or failure.)</p> 
 <p><b>Good Examples</b></p> 
 <div class="source"> 
  <div class="source"> 
   <pre>bool isValidHbaseName();
bool isHostNameExcluded();
bool canUseCbServer();
</pre> 
  </div> 
 </div> 
 <p><b>Bad Examples</b></p> 
 <div class="source"> 
  <div class="source"> 
   <pre>// Don’t use get for Boolean accessors
bool getUDRAccessModeViolation(); 

// Don’t use integer return for Boolean functions
short existsInHBase();

// Function name implies it is sending settings to the compiler, but it is
// actually only returning an indication that settings should be sent.  
// A better name would be shouldSendSettingsToCompiler().
bool sendSettingsToCompiler();
</pre> 
  </div> 
 </div> 
 <p>Parts of Trafodion code use one of two Boolean typedefs, <b><tt>NABoolean</tt></b> and <b><tt>ComBoolean</tt></b>, declared as follows:</p> 
 <div class="source"> 
  <div class="source"> 
   <pre>typedef int   Int32;
typedef Int32 NABoolean;
typedef NABoolean ComBoolean;
const NABoolean  TRUE = (1 == 1);
const NABoolean  FALSE = (0 == 1);
</pre> 
  </div> 
 </div> 
 <p>Exercise care when mixing usage of bool and <b><tt>NABoolean</tt></b>/<b><tt>ComBoolean</tt></b> types, as the latter are not guaranteed to only contain values of TRUE and FALSE. The use of non-standard Boolean types is gradually being phased out.</p> 
</div> 
<div class="section"> 
 <h2 id="Constants">Constants</h2> 
 <p>All constant names should be all upper case, regardless of how the constant is declared. That is, enums, defines, and variables with the <b><tt>const</tt></b> modifier should be named in all upper case.</p> 
 <p>Defines, enums, and const are all permitted and used throughout Trafodion, although most code in Trafodion uses enum for numerical constants and defines for character constants. </p> 
 <p>For new code, the use of const char or string is preferred for character constants instead of defines.</p> 
</div> 
<div class="section"> 
 <h2 id="Namespace_Names">Namespace Names</h2> 
 <p>The preference is for namespaces to be all lower case, with preference to single words (note the exception to the rule that a name with global scope should start with an upper case). </p> 
 <p>If a namespace must be dual-worded, use underscores. If mixed case names are used, Pascal case is preferred.</p> 
 <p><b>Examples</b></p> 
 <div class="source"> 
  <div class="source"> 
   <pre>//Preferred

namespace compiler 
//Accepted

namespace Compiler
</pre> 
  </div> 
 </div> 
 <h1 id="indentation_and_formatting">Indentation and Formatting</h1> 
</div> 
<div class="section"> 
 <h2 id="Indentation">Indentation</h2> 
 <p>TAB characters are not permitted in source files except for text files (for example, makefiles) that require them.</p> 
 <p>Trafodion code uses several indenting depths, including 2, 3, 4, and 8 spaces. Most common is 2 and 3. </p> 
 <p>Use the style found in existing code, and when writing new code, use either 2, 3, or 4, and remain consistent.</p> 
 <p>A variety of control block indentation styles are used throughout Trafodion, most commonly Allman, Whitesmith, Stroustrup, and GNU. Follow the predominant style when making small to medium changes to existing code. For new code, the Allman style is preferred.</p> 
 <div class="source"> 
  <div class="source"> 
   <pre>//Allman
   if (x &gt; 5)
   {
      error = doThis(x);
      if (error != 0)
      {
         return false;
      }
   }
   else
   {
      doThat(x);
   }

//Whitesmith
   if (x &gt; 5)
      {
      error = doThis(x);
      if (error != 0)
         {
         return false;
         }
      }
   else
      {
      doThat(x);
      }

//Stroustrup 
   if (x &gt; 5) {
      error = doThis(x);
      if (error != 0) {
          return false;
      }
   }
   else {
      doThat(x);
   }
</pre> 
  </div> 
 </div> 
 <p>Note that the Stroustrup and the similar K&amp;R formats were popularized by usage in books where conservation of line count was a goal.</p> 
 <div class="source"> 
  <div class="source"> 
   <pre>//GNU
  if (x &gt; 5)
    {
      error = doThis(x);
      if (error != 0)
        {
          return false;
        }
    }
  else
    {
      doThat(x);
    }
</pre> 
  </div> 
 </div> 
 <h1 id="comments">Comments</h1> 
</div> 
<div class="section"> 
 <h2 id="Comment_Style">Comment Style</h2> 
 <p>C++ style comments are preferred, but C comments are acceptable as well.</p> 
 <p>Some code uses Doxygen style comments, but this is not required.</p> 
</div> 
<div class="section"> 
 <h2 id="WhenWhere_Comments_Should_Be_Used">When/Where Comments Should Be Used</h2> 
 <p>Every file should have a comment at the beginning describing the purpose of the file.</p> 
 <p>In header files where classes are declared, there should be a comment describing the class, including purpose and usage. Also describe anything out of the ordinary, such as the use of multiple inheritance.</p> 
 <p>Within implementation files, in addition to the comment at the beginning of the file, add comments for any global or static variables defined in the file, and how the variable is handled in a multi-threaded environment (if applicable).</p> 
 <p>Also, for each function defined, describe the purpose and intent of the function. For each parameter, list whether it is input or output (or both), how it is used, and any range restrictions imposed. For functions not returning void, describe the possible return values.</p> 
 <p>Within the body of the function, there is no need to write comments that document the obvious. But if there is any complexity to the logic, at a minimum document the intent, and consider documenting the details (assumptions, limits, unexpected side effects from function calls, etc.)</p> 
 <p>If a feature is only partially implemented, add a comment indicating at a high level what work remains. Prefix the comment with //TODO.</p> 
 <div class="source"> 
  <div class="source"> 
   <pre>//TODO Code is currently not thread safe.  Need to protect allocation of ...
</pre> 
  </div> 
 </div> 
 <h1 id="error_handling">Error Handling</h1> 
</div> 
<div class="section"> 
 <h2 id="Asserts">Asserts</h2> 
 <p>Trafodion uses asserts in the “debug” build. Use asserts freely, but ensure they do not contain any side effects as the code is not present in the “release” build.</p> 
</div> 
<div class="section"> 
 <h2 id="Error_ReturnRetrieval">Error Return/Retrieval</h2> 
 <p>Avoid the use of integer return codes for success and error codes. Instead, use bool for simple succeeded/failed and enum types for returns with multiple conditions.</p> 
</div> 
<div class="section"> 
 <h2 id="Exception_Handling">Exception Handling</h2> 
 <p>Trafodion code mixes usage of exceptions and error returns. When using try/catch blocks, keep the scope as small as possible. Ensure all exceptions thrown are handled, potentially in main() if nowhere else.</p> 
 <h1 id="general_guidelines">General Guidelines</h1> 
</div> 
<div class="section"> 
 <h2 id="Casting">Casting</h2> 
 <p>Avoid using C-style casts. Use C++-style casts instead, as they are often safer and easier to search for.</p> 
 <div class="source"> 
  <div class="source"> 
   <pre>//Preferred

int x = static_cast&lt;int&gt;(shortVariable);

MyType *myVar = reinterpret_cast&lt;MyType *&gt;(voidPtr);
</pre> 
  </div> 
 </div> 
 <p>Don’t blindly cast to remove a compiler error or warning. Ensure the cast is safe.</p> 
 <p>Use const casting sparingly. Often the use of mutable or changing a function to be const correct is a better solution.</p> 
</div> 
<div class="section"> 
 <h2 id="Types">Types</h2> 
 <p>Use standard types defined in <b><tt>&lt;cstdint&gt;</tt></b> or <b><tt>&lt;stdint.h&gt;</tt></b>. Note that Trafodion defines and uses many non-standard types (for example, <b><tt>Int32</tt></b>, <b><tt>Lng32</tt></b>), but this usage is being phased out.</p> 
 <p>Use types with explicit sizes (for example, <b><tt>int32_t</tt></b>, <b><tt>int64_t</tt></b>) when size is a factor in the code, such as an external API, or column in a table. </p> 
 <p>Where size is not a factor (counters, indexes) a non-sized type such as <b><tt>int</tt></b> or <b><tt>long</tt></b> may be used. However, in general, <b><tt>size_t</tt></b> and <b><tt>ssize_t</tt></b> are preferred for variables where fixed size is not required.</p> 
</div>
			</div>
		</div>
	</div>
	</div>

	</div><!-- /container -->

	<!-- Footer
	================================================== -->
	<footer class="well">
		<div class="container">
			<div class="row">
				<div class="span2 bottom-nav">
					<ul class="nav nav-list">
						<li class="nav-header">About</li>
						<li >
							<a href="index.html" title="Project Overview">Project Overview</a>
						</li>
						<li >
							<a href="new-features.html" title="New Features">New Features</a>
						</li>
						<li >
							<a href="roadmap.html" title="Roadmap">Roadmap</a>
						</li>
						<li >
							<a href="performance.html" title="Performance">Performance</a>
						</li>
						<li >
							<a href="http:divider" title=""></a>
						</li>
						<li >
							<a href="team-list.html" title="Team">Team</a>
						</li>
						<li >
							<a href="presentations.html" title="Presentations">Presentations</a>
						</li>
						<li >
							<a href="mail-lists.html" title="Mailing List">Mailing List</a>
						</li>
						<li >
							<a href="http:divider" title=""></a>
						</li>
						<li >
							<a href="source-repository.html" title="Source Repository">Source Repository</a>
						</li>
						<li >
							<a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
						</li>
						<li >
							<a href="license.html" title="License">License</a>
						</li>
					</ul>
				</div>
				<div class="span2 bottom-nav">
					<ul class="nav nav-list">
						<li class="nav-header">Using</li>
						<li >
							<a href="quickstart.html" title="Quick Start">Quick Start</a>
						</li>
						<li >
							<a href="download.html" title="Download">Download</a>
						</li>
						<li >
							<a href="install.html" title="Install">Install</a>
						</li>
						<li >
							<a href="uninstall.html" title="Uninstall">Uninstall</a>
						</li>
						<li >
							<a href="management.html" title="Managing Trafodion">Managing Trafodion</a>
						</li>
						<li >
							<a href="http:divider" title=""></a>
						</li>
						<li >
							<a href="documentation.html" title="Documentation">Documentation</a>
						</li>
						<li >
							<a href="port-assignment.html" title="Port Assignments">Port Assignments</a>
						</li>
						<li >
							<a href="faq.html" title="FAQ">FAQ</a>
						</li>
						<li >
							<a href="release-notes.html" title="Release Notes">Release Notes</a>
						</li>
					</ul>
				</div>
				<div class="span2 bottom-nav">
					<ul class="nav nav-list">
						<li class="nav-header">Features</li>
						<li >
							<a href="architecture-overview.html" title="Architecture Overview">Architecture Overview</a>
						</li>
						<li >
							<a href="http:divider" title=""></a>
						</li>
						<li >
							<a href="https://blueprints.launchpad.net/trafodion/+spec/security-ansi-schemas" title="ANSI Schema Support" class="externalLink">ANSI Schema Support</a>
						</li>
						<li >
							<a href="https://blueprints.launchpad.net/trafodion/+spec/ustat-automation" title="Automated Update Statistics" class="externalLink">Automated Update Statistics</a>
						</li>
						<li >
							<a href="https://blueprints.launchpad.net/trafodion/+spec/bulkunload" title="Bulk Unload" class="externalLink">Bulk Unload</a>
						</li>
						<li >
							<a href="https://wiki.trafodion.org/wiki/index.php/Trafodion_Manageability#Logging_Events" title="Event Handling" class="externalLink">Event Handling</a>
						</li>
						<li >
							<a href="https://blueprints.launchpad.net/trafodion/+spec/hybrid-query-cache" title="Hybrid Query Cache" class="externalLink">Hybrid Query Cache</a>
						</li>
						<li >
							<a href="https://blueprints.launchpad.net/trafodion/+spec/identity-column" title="Identity Column" class="externalLink">Identity Column</a>
						</li>
						<li >
							<a href="https://wiki.trafodion.org/wiki/index.php/Creating_Statistics_During_Bulk_Load" title="Immediate Update Statistics" class="externalLink">Immediate Update Statistics</a>
						</li>
						<li >
							<a href="https://blueprints.launchpad.net/trafodion/+spec/lob-support" title="Large Object (LOB)" class="externalLink">Large Object (LOB)</a>
						</li>
						<li >
							<a href="https://blueprints.launchpad.net/trafodion/+spec/ddl-query-invalidation" title="Metadata Query Invalidation" class="externalLink">Metadata Query Invalidation</a>
						</li>
						<li >
							<a href="https://cwiki.apache.org/confluence/display/TRAFODION/Cmp-divisioning" title="Multi-Temperature Data" class="externalLink">Multi-Temperature Data</a>
						</li>
						<li >
							<a href="https://blueprints.launchpad.net/trafodion/+spec/access-external-hbase-tables" title="Native HBase Tables" class="externalLink">Native HBase Tables</a>
						</li>
						<li >
							<a href="docs/odb_user/index.html" title="ODB">ODB</a>
						</li>
						<li >
							<a href="https://blueprints.launchpad.net/trafodion/+spec/sql-query-cancel" title="Query Cancel" class="externalLink">Query Cancel</a>
						</li>
						<li >
							<a href="https://blueprints.launchpad.net/trafodion/+spec/security-privilege-updates" title="Privilege Checking" class="externalLink">Privilege Checking</a>
						</li>
						<li >
							<a href="https://wiki.trafodion.org/wiki/index.php/Trafodion_Manageability" title="Repository" class="externalLink">Repository</a>
						</li>
						<li >
							<a href="https://blueprints.launchpad.net/trafodion/+spec/enable-get-statistics-thru-rms" title="Runtime Management System" class="externalLink">Runtime Management System</a>
						</li>
						<li >
							<a href="https://blueprints.launchpad.net/trafodion/+spec/sequence-numbers" title="Sequence Numbers" class="externalLink">Sequence Numbers</a>
						</li>
						<li >
							<a href="https://blueprints.launchpad.net/trafodion/+spec/skew-buster" title="Skew Buster" class="externalLink">Skew Buster</a>
						</li>
						<li >
							<a href="https://wiki.trafodion.org/wiki/index.php/Tutorial:_The_object-oriented_UDF_interface" title="Table-Oriented UDF" class="externalLink">Table-Oriented UDF</a>
						</li>
						<li >
							<a href="https://wiki.trafodion.org/wiki/index.php/Data_Loading#Trickle_Loading_Data_Into_Trafodion_Tables" title="Trickle Load" class="externalLink">Trickle Load</a>
						</li>
						<li >
							<a href="http:divider" title=""></a>
						</li>
						<li >
							<a href="https://wiki.trafodion.org/wiki/index.php/Backup_and_Restore" title="Backup/Restore Utility" class="externalLink">Backup/Restore Utility</a>
						</li>
						<li >
							<a href="https://wiki.trafodion.org/wiki/index.php/Metadata_Cleanup" title="Metadata Cleanup Utility" class="externalLink">Metadata Cleanup Utility</a>
						</li>
					</ul>
				</div>
				<div class="span2 bottom-nav">
					<ul class="nav nav-list">
						<li class="nav-header">Contributing</li>
						<li >
							<a href="contribute.html" title="Contribute">Contribute</a>
						</li>
						<li >
							<a href="advocate.html" title="Advocate">Advocate</a>
						</li>
						<li >
							<a href="develop.html" title="Develop">Develop</a>
						</li>
						<li >
							<a href="testing.html" title="Test">Test</a>
						</li>
						<li >
							<a href="merge.html" title="Merge">Merge</a>
						</li>
						<li >
							<a href="release.html" title="Release">Release</a>
						</li>
						<li >
							<a href="http:divider" title=""></a>
						</li>
						<li >
							<a href="create-dev-environment.html" title="Create Dev Environment">Create Dev Environment</a>
						</li>
						<li >
							<a href="manage-dev-environment.html" title="Manage Dev Environment">Manage Dev Environment</a>
						</li>
						<li >
							<a href="setup-build-environment.html" title="Setup Build Environment">Setup Build Environment</a>
						</li>
						<li >
							<a href="build.html" title="Build Trafodion">Build Trafodion</a>
						</li>
						<li >
							<a href="http:divider" title=""></a>
						</li>
						<li >
							<a href="code.html" title="Modify Code">Modify Code</a>
						</li>
						<li >
							<a href="tests.html" title="Modify Tests">Modify Tests</a>
						</li>
						<li >
							<a href="document.html" title="Modify Documentation">Modify Documentation</a>
						</li>
						<li >
							<a href="website.html" title="Modify Web Site">Modify Web Site</a>
						</li>
						<li >
							<a href="wiki.html" title="Modify Wiki Pages">Modify Wiki Pages</a>
						</li>
						<li >
							<a href="http:divider" title=""></a>
						</li>
						<li class="active">
							<a href="#" title="C++ Coding Guidelines">C++ Coding Guidelines</a>
						</li>
					</ul>
				</div>
				<div class="span4 bottom-description">
					<blockquote><a href="http://trafodion.apache.org/">Apache Trafodion</a> is a webscale SQL-on-Hadoop solution enabling transactional or operational
          workloads on Hadoop. <br /><br />The name &quot;Trafodion&quot; (the Welsh word for transactions, pronounced
          &quot;Tra-vod-eee-on&quot;) was chosen specifically to emphasize the differentiation that 
          Trafodion provides in closing a critical gap in the Hadoop ecosystem.<br /><br />          
          Trafodion builds on the scalability, elasticity, and flexibility of Hadoop. Trafodion extends 
          Hadoop to provide guaranteed transactional integrity, enabling new kinds of big data 
          applications to run on Hadoop.</blockquote>
				</div>
			</div>
		</div>
	</footer>

	<div class="container subfooter">
		<div class="row">
			<div class="span12">
				<p class="pull-right"><a href="#">Back to top</a></p>
				<p class="copyright">Copyright &copy;2015-2016 <a href="http://www.apache.org">Apache Software Foundation</a>. All Rights Reserved.</p>
		
<hr/>
<div class="row span16">
  <span>Disclaimer: Apache Trafodion is an effort undergoing incubation at the Apache Software Foundation (ASF), sponsored by the Apache Incubator PMC. 
        Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making 
        process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the 
        completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.</span>
  <br/>
  <br/>
  <span>Apache, Apache Maven, Apache Maven Fluido Skin, the Apache feather logo, the Apache Maven project logo and the Apache Incubator project logo 
        are trademarks of The Apache Software Foundation.</span>
  <br/>
  <br/>
  <span>
    <a target="_blank" href="http://www.apache.org">
      <img id="asf-logo" alt="Apache Software Foundation" src="images/logos/feather-small.gif"/>
    </a>
    <a target="_blank" href="http://incubator.apache.org/">
      <img id="incubator-logo" alt="Apache Incubator" src="images/logos/egg-logo.gif"/>
    </a>
  </span>
</div>			</div>
		</div>
	</div>

	<!-- Le javascript
	================================================== -->
	<!-- Placed at the end of the document so the pages load faster -->
	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

	<script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
	<script src="./js/lightbox.min.js"></script>
	<script src="./js/reflow-scroll.js"></script>
	<script src="http://yandex.st/highlightjs/7.5/highlight.min.js"></script>

	<script src="./js/reflow-skin.js"></script>

	</body>
</html>
