diff options
author | Bill Wendling <isanbard@gmail.com> | 2006-12-09 01:35:43 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2006-12-09 01:35:43 +0000 |
commit | 4ad6d61cb71fca7161dc38339ce29f4d776b2519 (patch) | |
tree | 05860ab14a86bed365c3729332820159fbcff2e5 /docs/CodingStandards.html | |
parent | 0f7c10d7b6c553cd92c3abadd7e23c45edbcbfd2 (diff) | |
download | external_llvm-4ad6d61cb71fca7161dc38339ce29f4d776b2519.zip external_llvm-4ad6d61cb71fca7161dc38339ce29f4d776b2519.tar.gz external_llvm-4ad6d61cb71fca7161dc38339ce29f4d776b2519.tar.bz2 |
Fixed some formatting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32392 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs/CodingStandards.html')
-rw-r--r-- | docs/CodingStandards.html | 57 |
1 files changed, 29 insertions, 28 deletions
diff --git a/docs/CodingStandards.html b/docs/CodingStandards.html index 72ca775..5b65fbc 100644 --- a/docs/CodingStandards.html +++ b/docs/CodingStandards.html @@ -49,7 +49,7 @@ <li><a href="#ll_assert">Assert Liberally</a></li> <li><a href="#ll_ns_std">Do not use 'using namespace std'</a></li> <li><a href="#ll_virtual_anch">Provide a virtual method anchor for - clases in headers</a></li> + classes in headers</a></li> <li><a href="#ll_preincrement">Prefer Preincrement</a></li> <li><a href="#ll_avoidendl">Avoid <tt>std::endl</tt></a></li> </ol></li> @@ -616,42 +616,43 @@ assert(isa<PHINode>(Succ->front()) && "Only works on PHId BBs!" <!-- _______________________________________________________________________ --> <div class="doc_subsubsection"> - <a name="ll_ns_std">Do not use 'using namespace std'</a> + <a name="ll_ns_std">Do not use '<tt>using namespace std</tt>'</a> </div> <div class="doc_text"> <p>In LLVM, we prefer to explicitly prefix all identifiers from the standard -namespace with an "std::" prefix, rather than rely on "using namespace std;". -</p> - -<p> In header files, adding a 'using namespace XXX' directive pollutes the -namespace of any source file that includes the header. This is clearly a bad -thing.</p> - -<p>In implementation files (e.g. .cpp files) the rule is more of a stylistic -rule, but is still important. Basically, using explicit namespace prefixes -makes -the code <b>more clear</b> - because it is immediately obvious what facilities -are being used and where they are coming from - and <b>more portable</b> - -because namespace clashes cannot occur between LLVM code and other namespaces. -The portability rule is important because different standard library -implementations expose different symbols (potentially ones they shouldn't) and -future revisions to the C++ standard will add more symbols to the std -namespace. As such, we never 'using namespace std;' in LLVM.</p> - -<p>The exception to the general rule (i.e. it's not an exception for the std -namespace) is for implementation files. For example, all of the code in the -LLVM project implements code that lives in the 'llvm' namespace. As such, it -is ok, and actually more clear, for the .cpp files to have a 'using namespace -llvm' directive at their top, after the #includes. The general form of this -rule is that any .cpp file that implements code in any namespace may use that -namespace (and its parents), but should not use any others.</p> +namespace with an "<tt>std::</tt>" prefix, rather than rely on +"<tt>using namespace std;</tt>".</p> + +<p> In header files, adding a '<tt>using namespace XXX</tt>' directive pollutes +the namespace of any source file that includes the header. This is clearly a +bad thing.</p> + +<p>In implementation files (e.g. .cpp files), the rule is more of a stylistic +rule, but is still important. Basically, using explicit namespace prefixes +makes the code <b>clearer</b>, because it is immediately obvious what facilities +are being used and where they are coming from, and <b>more portable</b>, because +namespace clashes cannot occur between LLVM code and other namespaces. The +portability rule is important because different standard library implementations +expose different symbols (potentially ones they shouldn't), and future revisions +to the C++ standard will add more symbols to the <tt>std</tt> namespace. As +such, we never use '<tt>using namespace std;</tt>' in LLVM.</p> + +<p>The exception to the general rule (i.e. it's not an exception for +the <tt>std</tt> namespace) is for implementation files. For example, all of +the code in the LLVM project implements code that lives in the 'llvm' namespace. +As such, it is ok, and actually clearer, for the .cpp files to have a '<tt>using +namespace llvm</tt>' directive at their top, after the <tt>#include</tt>s. The +general form of this rule is that any .cpp file that implements code in any +namespace may use that namespace (and its parents'), but should not use any +others.</p> </div> <!-- _______________________________________________________________________ --> <div class="doc_subsubsection"> - <a name="ll_virtual_anch">Provide a virtual method anchor for clases in headers</a> + <a name="ll_virtual_anch">Provide a virtual method anchor for classes + in headers</a> </div> <div class="doc_text"> |