ECMA 372 : 1ED 2005
Current
The latest, up-to-date edition.
C++/CLI LANGUAGE SPECIFICATION
12-01-2013
Introduction
1 Scope
2 Conformance
3 Normative references
4 Definitions
5 Notational conventions
6 Acronyms and abbreviations
7 General description
8 Language overview
8.1 Getting started
8.2 Types
8.3 Parameters
8.4 Automatic memory management
8.5 Expressions
8.6 Statements
8.7 Delegates
8.8 Native and ref classes
8.9 Value classes
8.10 Interfaces
8.11 Enums
8.12 Namespaces and assemblies
8.13 Versioning
8.14 Attributes
8.15 Generics
9 Lexical structure
9.1 Tokens
10 Basic concepts
10.1 Assemblies
10.2 Application entry point
10.3 Importing types from assemblies
10.4 Reserved names
10.5 Members
10.6 Member access
10.7 Name lookup
11 Preprocessor
11.1 Conditional inclusion
11.2 Predefined macro names
12 Types
12.1 Value types
12.2 Class types
12.3 Declarator types
12.4 Top-level type visibility
13 Variables
13.1 gc-lvalues
13.2 File-scope and namespace-scope
variables
13.3 Direct initialization
14 Conversions
14.1 Conversion sequences
14.2 Standard conversions
14.3 Implicit conversions
14.4 Explicit conversions
14.5 User-defined conversions
14.6 Parameter array conversions
14.7 Naming conventions
15 Expressions
15.1 Function members
15.2 Primary expressions
15.3 Postfix expressions
15.4 Unary expressions
15.5 Explicit type conversion (cast notation)
15.6 Additive operators
15.7 Shift operators
15.8 Relational operators
15.9 Logical AND operator
15.10 Logical OR operator
15.11 Conditional operator
15.12 Assignment operators
15.13 Constant expressions
15.14 Property and event rewrite rules
16 Statements
16.1 Selection statements
16.2 Iteration statements
16.3 Jump statements
16.4 The try block
17 Namespaces
17.1 Reserved namespaces
18 Functions
18.1
18.2 Name lookup
18.3 Overload resolution
18.4 Parameter arrays
18.5 Importing native functions
18.6 Non-member functions
18.7 Attributes
19 Classes and members
19.1 Class definitions
19.2 Reserved member names
19.3 Data members
19.4 Functions
19.5 Properties
19.6 Events
19.7 Static operators
19.8 Non-static operators
19.9 Instance constructors
19.10 Static constructors
19.11 Literal fields
19.12 Initonly fields
19.13 Destructors and finalizers
20 Native classes
20.1 Functions
20.2 Properties
20.3 Static operators
20.4 Delegates
20.5 Friends
20.6 Events
20.7 Finalizer
20.8 Initonly and literal fields
20.9 Static constructors
21 Ref classes
21.1 Ref class definitions
21.2 Ref class members
21.3 Functions
21.4 Properties
21.5 Events
21.6 Static operators
21.7 Non-static operators
21.8 Instance constructors
21.9 Static constructor
21.10 Literal fields
21.11 Initonly fields
21.12 Destructors and finalizers
21.13 Delegates
22 Value classes
22.1 Value class definitions
22.2 Value class members
22.3 Ref class and value class differences
22.4 Simple value classes
22.5 Constructors
22.6 Operators
23 Mixed types
24 CLI arrays
24.1 CLI array types
24.2 CLI array creation
24.3 CLI array element access
24.4 CLI array members
24.5 CLI array covariance
24.6 CLI array initializers
25 Interfaces
25.1 Interface definitions
25.2 Interface members
25.3 Interface implementations
26 Enums
26.1 Enum definitions
26.2 The System::Flags attribute
27 Delegates
27.1 Delegate definitions
27.2 Delegate instantiation
27.3 Delegate invocation
28 Exceptions and exception handling
28.1 Common exception classes
28.2 Exception specifications
29 Attributes
29.1 Attribute classes
29.2 Attribute specification
29.3 Attribute instances
29.4 Reserved attributes
29.5 Attributes for interoperation
30 Templates
30.1 Template declarations
30.2 Template specialization
30.3 Attributes
30.4 Type deduction
31 Generics
31.1 Generic declarations
31.2 Constructed types
31.3 Generic function
31.4 Constraints
32 Standard C and C++ libraries
33 CLI libraries
33.1 Custom modifiers
33.2 Standard attributes
34 Metadata
34.1 Basic concepts
34.2 Types
34.3 Variables
34.4 Conversions
34.5 Expressions
34.6 Functions
34.7 Classes and members
34.8 Native classes
34.9 Ref classes
34.10 Value classes
34.11 CLI arrays
34.12 Interfaces
34.13 Enums
34.14 Delegates
34.15 Exceptions
34.16 Attributes
34.17 Templates
34.18 Generics
Annex A Grammar
A.1 Keywords
A.2 Lexical conventions
A.3 Basic concepts
A.4 Expressions
A.5 Statements
A.6 Declarations
A.7 Declarators
A.8 Classes
A.9 Properties and events
A.10 Derived classes
A.11 Special member functions
A.12 Overloading
A.13 Delegates
A.14 Templates
A.15 Generics
A.16 Exception handling
A.17 Attributes
A.18 Preprocessing directives
Annex B Verifiable code
Annex C (informative) Documentation comments
C.1 Introduction
C.2 Recommended tags
C.3 Processing the documentation file
C.4 An example
Annex D Non-normative references
Annex E (informative) CLI naming guidelines
Annex F (informative) Future directions
F.1 Expressions
F.2 Statements
F.3 Classes
F.4 Generic types
F.5 Custom modifiers
F.6 Attributes
Annex G (informative) Portability issues
G.1 Undefined behavior
G.2 Implementation-defined behavior
G.3 Unspecified behavior
Annex H (informative) Index
Defines requirements for implementations of the C++/CLI binding.
DocumentType |
Standard
|
PublisherName |
European Computer Manufacturers Association
|
Status |
Current
|
ISO/IEC 2382-1:1993 | Information technology Vocabulary Part 1: Fundamental terms |
IEC 60559:1989 | Binary floating-point arithmetic for microprocessor systems |
ECMA 335 : 6ED 2012 | COMMON LANGUAGE INFRASTRUCTURE (CLI) - PARTITIONS 1 TO 6 |
IEEE 754-2008 REDLINE | IEEE Standard for Floating-Point Arithmetic |
Access your standards online with a subscription
Features
-
Simple online access to standards, technical information and regulations.
-
Critical updates of standards and customisable alerts and notifications.
-
Multi-user online standards collection: secure, flexible and cost effective.