---
title: "C++ Language Reference"
ms.custom: "index-page"
ms.date: "11/04/2016"
helpviewer_keywords: ["language reference", "C++, language reference", "language reference, Visual C++", "Visual C++, language reference"]
ms.assetid: 4be9cacb-c862-4391-894a-3a118c9c93ce
---
# C++ Language Reference
This reference explains the C++ programming language as implemented in Microsoft Visual C++. The organization is based on *The Annotated C++ Reference Manual* by Margaret Ellis and Bjarne Stroustrup and on the ANSI/ISO C++ International Standard (ISO/IEC FDIS 14882). Microsoft-specific implementations of C++ language features are included.
For an overview of Modern C++ programming practices, see [Welcome Back to C++](welcome-back-to-cpp-modern-cpp.md).
See the following tables to quickly find a keyword or operator:
- [C++ Keywords](../cpp/keywords-cpp.md)
- [C++ Operators](../cpp/cpp-built-in-operators-precedence-and-associativity.md)
## In This Section
[Lexical Conventions](../cpp/lexical-conventions.md)
Fundamental lexical elements of a C++ program: tokens, comments, operators, keywords, punctuators, literals. Also, file translation, operator precedence/associativity.
[Basic Concepts](../cpp/basic-concepts-cpp.md)
Scope, linkage, program startup and termination, storage classes, and types.
[Standard Conversions](../cpp/standard-conversions.md)
Type conversions between built-in, or "fundamental," types. Also, arithmetic conversions and conversions among pointer, reference, and pointer-to-member types.
[Operators, Precedence and Associativity](../cpp/cpp-built-in-operators-precedence-and-associativity.md)
The operators in C++.
[Expressions](../cpp/expressions-cpp.md)
Types of expressions, semantics of expressions, reference topics on operators, casting and casting operators, run-time type information.
[Lambda Expressions](../cpp/lambda-expressions-in-cpp.md)
A programming technique that implicitly defines a function object class and constructs a function object of that class type.
[Statements](../cpp/statements-cpp.md)
Expression, null, compound, selection, iteration, jump, and declaration statements.
[Declarations and Definitions](declarations-and-definitions-cpp.md)
Storage-class specifiers, function definitions, initializations, enumerations, **class**, **struct**, and **union** declarations, and **typedef** declarations. Also, **inline** functions, **const** keyword, namespaces.
[Classes, Structures, and Unions](../cpp/classes-and-structs-cpp.md)
Introduction to classes, structures, and unions. Also, member functions, special member functions, data members, bit fields, **this** pointer, nested classes.
[Derived Classes](../cpp/inheritance-cpp.md)
Single and multiple inheritance, **virtual** functions, multiple base classes, **abstract** classes, scope rules. Also, the **__super** and **__interface** keywords.
[Member-Access Control](../cpp/member-access-control-cpp.md)
Controlling access to class members: **public**, **private**, and **protected** keywords. Friend functions and classes.
[Overloading](operator-overloading.md)
Overloaded operators, rules for operator overloading.
[Exception Handling](../cpp/exception-handling-in-visual-cpp.md)
C++ exception handling, structured exception handling (SEH), keywords used in writing exception handling statements.
[Assertion and User-Supplied Messages](../cpp/assertion-and-user-supplied-messages-cpp.md)
`#error` directive, the **static_assert** keyword, the `assert` macro.
[Templates](../cpp/templates-cpp.md)
Template specifications, function templates, class templates, **typename** keyword, templates vs. macros, templates and smart pointers.
[Event Handling](../cpp/event-handling.md)
Declaring events and event handlers.
[Microsoft-Specific Modifiers](../cpp/microsoft-specific-modifiers.md)
Modifiers specific to Microsoft C++. Memory addressing, calling conventions, **naked** functions, extended storage-class attributes (**__declspec**), **__w64**.
[Inline Assembler](../assembler/inline/inline-assembler.md)
Using assembly language and C++ in **__asm** blocks.
[Compiler COM Support](../cpp/compiler-com-support.md)
A reference to Microsoft-specific classes and global functions used to support COM types.
[Microsoft Extensions](../cpp/microsoft-extensions.md)
Microsoft extensions to C++.
[Nonstandard Behavior](../cpp/nonstandard-behavior.md)
Information about nonstandard behavior of the Visual C++ compiler.
[Welcome Back to C++](welcome-back-to-cpp-modern-cpp.md)
An overview of modern C++ programming practices for writing safe, correct and efficient programs.
## Related Sections
[Component Extensions for Runtime Platforms](../windows/component-extensions-for-runtime-platforms.md)
Reference material on using Visual C++ to target the common language runtime.
[C/C++ Building Reference](../build/reference/c-cpp-building-reference.md)
Compiler options, linker options, and other build tools.
[C/C++ Preprocessor Reference](../preprocessor/c-cpp-preprocessor-reference.md)
Reference material on pragmas, preprocessor directives, predefined macros, and the preprocessor.
[Visual C++ Libraries](../standard-library/cpp-standard-library-reference.md)
A list of links to the reference start pages for the various Visual C++ libraries.
## See also
[C Language Reference](../c-language/c-language-reference.md)