Skip to content

Commit 9aa1bb6

Browse files
author
Colin Robertson
committed
Merge branch 'mikeblome-mb-clr'
2 parents d4e4e83 + 3db099f commit 9aa1bb6

11 files changed

+700
-691
lines changed

.openpublishing.redirection.json

Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2420,6 +2420,11 @@
24202420
"redirect_url": "/cpp/dotnet/functional-stl-clr#greater",
24212421
"redirect_document_id": false
24222422
},
2423+
{
2424+
"source_path": "docs/dotnet/how-to-migrate-to-clr-safe-cpp-cli.md",
2425+
"redirect_url": "/cpp/dotnet/pure-and-verifiable-code-cpp-cli",
2426+
"redirect_document_id": false
2427+
},
24232428
{
24242429
"source_path": "docs/dotnet/greater-equal-stl-clr.md",
24252430
"redirect_url": "/cpp/dotnet/functional-stl-clr#greater_equal",
@@ -5955,6 +5960,176 @@
59555960
"redirect_url": "/cpp/dotnet/reflection-cpp-cli#enumerate",
59565961
"redirect_document_id": false
59575962
},
5963+
{
5964+
"source_path": "docs/dotnet/cpp-cli-migration-primer.md",
5965+
"redirect_url": "/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp",
5966+
"redirect_document_id": false
5967+
},
5968+
{
5969+
"source_path": "docs/dotnet/outline-of-changes-cpp-cli.md",
5970+
"redirect_url": "/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp",
5971+
"redirect_document_id": false
5972+
},
5973+
{
5974+
"source_path": "docs/dotnet/language-keywords-cpp-cli.md",
5975+
"redirect_url": "/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp",
5976+
"redirect_document_id": false
5977+
},
5978+
{
5979+
"source_path": "docs/dotnet/managed-types-cpp-cl.md",
5980+
"redirect_url": "/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp",
5981+
"redirect_document_id": false
5982+
},
5983+
{
5984+
"source_path": "docs/dotnet/declaration-of-a-managed-class-type.md",
5985+
"redirect_url": "/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp",
5986+
"redirect_document_id": false
5987+
},
5988+
{
5989+
"source_path": "docs/dotnet/declaration-of-a-clr-reference-class-object.md",
5990+
"redirect_url": "/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp",
5991+
"redirect_document_id": false
5992+
},
5993+
{
5994+
"source_path": "docs/dotnet/declaration-of-a-clr-array.md",
5995+
"redirect_url": "/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp",
5996+
"redirect_document_id": false
5997+
},
5998+
{
5999+
"source_path": "docs/dotnet/changes-in-constructor-initialization-order.md",
6000+
"redirect_url": "/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp",
6001+
"redirect_document_id": false
6002+
},
6003+
{
6004+
"source_path": "docs/dotnet/changes-in-destructor-semantics.md",
6005+
"redirect_url": "/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp",
6006+
"redirect_document_id": false
6007+
},
6008+
{
6009+
"source_path": "docs/dotnet/member-declarations-within-a-class-or-interface-cpp-cli.md",
6010+
"redirect_url": "/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp",
6011+
"redirect_document_id": false
6012+
},
6013+
{
6014+
"source_path": "docs/dotnet/property-declaration.md",
6015+
"redirect_url": "/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp",
6016+
"redirect_document_id": false
6017+
},
6018+
{
6019+
"source_path": "docs/dotnet/property-index-declaration.md",
6020+
"redirect_url": "/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp",
6021+
"redirect_document_id": false
6022+
},
6023+
{
6024+
"source_path": "docs/dotnet/delegates-and-events.md",
6025+
"redirect_url": "/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp",
6026+
"redirect_document_id": false
6027+
},
6028+
{
6029+
"source_path": "docs/dotnet/sealing-a-virtual-function.md",
6030+
"redirect_url": "/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp",
6031+
"redirect_document_id": false
6032+
},
6033+
{
6034+
"source_path": "docs/dotnet/overloaded-operators.md",
6035+
"redirect_url": "/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp",
6036+
"redirect_document_id": false
6037+
},
6038+
{
6039+
"source_path": "docs/dotnet/changes-to-conversion-operators.md",
6040+
"redirect_url": "/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp",
6041+
"redirect_document_id": false
6042+
},
6043+
{
6044+
"source_path": "docs/dotnet/explicit-override-of-an-interface-member.md",
6045+
"redirect_url": "/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp",
6046+
"redirect_document_id": false
6047+
},
6048+
{
6049+
"source_path": "docs/dotnet/iterating-over-stl-collection-by-using-for-each.md",
6050+
"redirect_url": "/cpp/dotnet/for-each-in",
6051+
"redirect_document_id": false
6052+
},
6053+
{
6054+
"source_path": "docs/dotnet/how-to-iterate-over-arrays-with-for-each.md",
6055+
"redirect_url": "/cpp/dotnet/for-each-in",
6056+
"redirect_document_id": false
6057+
},
6058+
{
6059+
"source_path": "docs/dotnet/how-to-iterate-over-a-generic-collection-with-for-each.md",
6060+
"redirect_url": "/cpp/dotnet/for-each-in",
6061+
"redirect_document_id": false
6062+
},
6063+
{
6064+
"source_path": "docs/dotnet/how-to-iterate-over-a-user-defined-collection-with-for-each.md",
6065+
"redirect_url": "/cpp/dotnet/for-each-in",
6066+
"redirect_document_id": false
6067+
},
6068+
{
6069+
"source_path": "docs/dotnet/private-virtual-functions.md",
6070+
"redirect_url": "/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp",
6071+
"redirect_document_id": false
6072+
},
6073+
{
6074+
"source_path": "docs/dotnet/static-const-int-linkage-is-no-longer-literal.md",
6075+
"redirect_url": "/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp",
6076+
"redirect_document_id": false
6077+
},
6078+
{
6079+
"source_path": "docs/dotnet/value-types-and-their-behaviors-cpp-cli.md",
6080+
"redirect_url": "/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp",
6081+
"redirect_document_id": false
6082+
},
6083+
{
6084+
"source_path": "docs/dotnet/clr-enum-type.md",
6085+
"redirect_url": "/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp",
6086+
"redirect_document_id": false
6087+
},
6088+
{
6089+
"source_path": "docs/dotnet/implicit-boxing-of-value-types.md",
6090+
"redirect_url": "/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp",
6091+
"redirect_document_id": false
6092+
},
6093+
{
6094+
"source_path": "docs/dotnet/a-tracking-handle-to-a-boxed-value.md",
6095+
"redirect_url": "/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp",
6096+
"redirect_document_id": false
6097+
},
6098+
{
6099+
"source_path": "docs/dotnet/value-type-semantics.md",
6100+
"redirect_url": "/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp",
6101+
"redirect_document_id": false
6102+
},
6103+
{
6104+
"source_path": "docs/dotnet/general-language-changes-cpp-cli.md",
6105+
"redirect_url": "/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp",
6106+
"redirect_document_id": false
6107+
},
6108+
{
6109+
"source_path": "docs/dotnet/string-literal.md",
6110+
"redirect_url": "/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp",
6111+
"redirect_document_id": false
6112+
},
6113+
{
6114+
"source_path": "docs/dotnet/param-array-and-ellipsis.md",
6115+
"redirect_url": "/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp",
6116+
"redirect_document_id": false
6117+
},
6118+
{
6119+
"source_path": "docs/dotnet/typeof-goes-to-t-typeid.md",
6120+
"redirect_url": "/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp",
6121+
"redirect_document_id": false
6122+
},
6123+
{
6124+
"source_path": "docs/dotnet/initializer-lists.md",
6125+
"redirect_url": "/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp",
6126+
"redirect_document_id": false
6127+
},
6128+
{
6129+
"source_path": "docs/dotnet/cast-notation-and-introduction-of-safe-cast-angles.md",
6130+
"redirect_url": "/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp",
6131+
"redirect_document_id": false
6132+
},
59586133
{
59596134
"source_path": "docs/error-messages/compiler-errors-1/index.md",
59606135
"redirect_url": "/cpp/error-messages/compiler-errors-1/compiler-fatal-errors-c999-through-c1999",

docs/build/reference/clr-common-language-runtime-compilation.md

Lines changed: 4 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "-clr (Common Language Runtime Compilation) | Microsoft Docs"
33
ms.custom: ""
4-
ms.date: "11/04/2016"
4+
ms.date: "09/18/2018"
55
ms.technology: ["cpp-tools"]
66
ms.topic: "reference"
77
f1_keywords: ["/CLR", "VC.Project.VCNMakeTool.CompileAsManaged", "VC.Project.VCCLCompilerTool.CompileAsManaged"]
@@ -27,15 +27,15 @@ One or more of the following switches, comma-separated.
2727

2828
- none
2929

30-
With no options, **/clr** creates metadata for the application. The metadata can be consumed by other CLR applications, and enables the application to consume types and data in the metadata of other CLR components. For more information, see [Mixed (Native and Managed) Assemblies](../../dotnet/mixed-native-and-managed-assemblies.md) and [How to: Migrate to /clr](../../dotnet/how-to-migrate-to-clr.md).
30+
With no options, **/clr** creates metadata for the application. The metadata can be consumed by other CLR applications, and enables the application to consume types and data in the metadata of other CLR components. For more information, see [Mixed (Native and Managed) Assemblies](../../dotnet/mixed-native-and-managed-assemblies.md).
3131

3232
- **pure**
3333

34-
**/clr:pure is deprecated**. A future version of the compiler may not support this option. We recommend that you port code that must be pure MSIL to C#.
34+
**/clr:pure is deprecated**. The option is removed in Visual Studio 2017. We recommend that you port code that must be pure MSIL to C#.
3535

3636
- **safe**
3737

38-
**/clr:safe is deprecated**. A future version of the compiler may not support this option. We recommend that you port code that must be safe MSIL to C#.
38+
**/clr:safe is deprecated**. The option is removed in Visual Studio 2017. We recommend that you port code that must be safe MSIL to C#.
3939

4040
- **noAssembly**
4141

@@ -95,31 +95,6 @@ class {} x;
9595

9696
Use ildasm.exe to view metadata.
9797

98-
## Managed Extensions for C++
99-
100-
Visual C++ no longer supports the **/clr:oldsyntax** option. This option was deprecated in Visual Studio 2005. The supported syntax for writing managed code in C++ is C++/CLI. For more information, see [Component Extensions for Runtime Platforms](../../windows/component-extensions-for-runtime-platforms.md).
101-
102-
If you have code that uses Managed Extensions for C++, we recommend that you port it to use C++/CLI syntax. For information on how to port your code, see [C++/CLI Migration Primer](../../dotnet/cpp-cli-migration-primer.md).
103-
104-
#### To set this compiler option in Visual Studio
105-
106-
1. In **Solution Explorer**, right-click the project name, and then click **Properties** to open the project **Property Pages** dialog box.
107-
108-
1. Select the **Configuration Properties** > **General** property page.
109-
110-
1. Modify the **Common Language Runtime support** property.
111-
112-
> [!NOTE]
113-
> When **/clr** is enabled in the **Property Pages** dialog box, compiler option properties that are not compatible with **/clr** are also adjusted, as required. For example, if **/RTC** is set and then **/clr** is enabled, **/RTC** will be turned off.
114-
>
115-
> Also, when you debug a **/clr** application, set the **Debugger Type** property to **Mixed** or **Managed only**. For more information, see [Project Settings for a C++ Debug Configuration](/visualstudio/debugger/project-settings-for-a-cpp-debug-configuration).
116-
117-
For information about how the create a module, see [/NOASSEMBLY (Create a MSIL Module)](../../build/reference/noassembly-create-a-msil-module.md).
118-
119-
#### To set this compiler option programmatically
120-
121-
- See <xref:Microsoft.VisualStudio.VCProjectEngine.VCCLCompilerTool.CompileAsManaged%2A>.
122-
12398
## See Also
12499

125100
[Compiler Options](../../build/reference/compiler-options.md)<br/>

docs/dotnet/TOC.md

Lines changed: 6 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,13 @@
1616
### [How to: Declare Override Specifiers in Native Compilations (C++/CLI)](how-to-declare-override-specifiers-in-native-compilations-cpp-cli.md)
1717
### [How to: Use Properties in C++/CLI](how-to-use-properties-in-cpp-cli.md)
1818
### [How to: Use safe_cast in C++/CLI](how-to-use-safe-cast-in-cpp-cli.md)
19+
### [Regular Expressions (C++/CLI)](regular-expressions-cpp-cli.md)
20+
### [File Handling and I-O (C++/CLI)](file-handling-and-i-o-cpp-cli.md)
21+
### [Graphics Operations (C++/CLI)](graphics-operations-cpp-cli.md)
22+
### [Windows Operations (C++/CLI)](windows-operations-cpp-cli.md)
23+
### [Data Access Using ADO.NET (C++/CLI)](data-access-using-adonet-cpp-cli.md)
1924
## [Native and .NET Interoperability](native-and-dotnet-interoperability.md)
25+
### [Interoperability with Other .NET Languages (C++/CLI)](interoperability-with-other-dotnet-languages-cpp-cli.md)
2026
### [Mixed (Native and Managed) Assemblies](mixed-native-and-managed-assemblies.md)
2127
#### [How to: Migrate to -clr](how-to-migrate-to-clr.md)
2228
#### [How to: Compile MFC and ATL Code By Using -clr](how-to-compile-mfc-and-atl-code-by-using-clr.md)
@@ -73,47 +79,10 @@
7379
##### [How to: Use a Native Type in a -clr Compilation](how-to-use-a-native-type-in-a-clr-compilation.md)
7480
##### [How to: Declare Handles in Native Types](how-to-declare-handles-in-native-types.md)
7581
##### [How to: Wrap Native Class for Use by C#](how-to-wrap-native-class-for-use-by-csharp.md)
76-
## [C++/CLI Migration Primer](cpp-cli-migration-primer.md)
77-
### [Outline of Changes (C++/CLI)](outline-of-changes-cpp-cli.md)
78-
### [Language Keywords (C++/CLI)](language-keywords-cpp-cli.md)
79-
### [Managed Types (C++-CL)](managed-types-cpp-cl.md)
80-
#### [Declaration of a Managed Class Type](declaration-of-a-managed-class-type.md)
81-
#### [Declaration of a CLR Reference Class Object](declaration-of-a-clr-reference-class-object.md)
82-
#### [Declaration of a CLR Array](declaration-of-a-clr-array.md)
83-
#### [Changes in Constructor Initialization Order](changes-in-constructor-initialization-order.md)
84-
#### [Changes in Destructor Semantics](changes-in-destructor-semantics.md)
85-
### [Member Declarations within a Class or Interface (C++/CLI)](member-declarations-within-a-class-or-interface-cpp-cli.md)
86-
#### [Property Declaration](property-declaration.md)
87-
#### [Property Index Declaration](property-index-declaration.md)
88-
#### [Delegates and Events](delegates-and-events.md)
89-
#### [Sealing a Virtual Function](sealing-a-virtual-function.md)
90-
#### [Overloaded Operators](overloaded-operators.md)
91-
#### [Changes to Conversion Operators](changes-to-conversion-operators.md)
92-
#### [Explicit Override of an Interface Member](explicit-override-of-an-interface-member.md)
93-
#### [Private Virtual Functions](private-virtual-functions.md)
94-
#### [Static Const Int Linkage Is No Longer Literal](static-const-int-linkage-is-no-longer-literal.md)
95-
### [Value Types and Their Behaviors (C++/CLI)](value-types-and-their-behaviors-cpp-cli.md)
96-
#### [CLR Enum Type](clr-enum-type.md)
97-
#### [Implicit Boxing of Value Types](implicit-boxing-of-value-types.md)
98-
#### [A Tracking Handle to a Boxed Value](a-tracking-handle-to-a-boxed-value.md)
99-
#### [Value Type Semantics](value-type-semantics.md)
100-
### [General Language Changes (C++/CLI)](general-language-changes-cpp-cli.md)
101-
#### [String Literal](string-literal.md)
102-
#### [Param Array and Ellipsis](param-array-and-ellipsis.md)
103-
#### [typeof Goes to T::typeid](typeof-goes-to-t-typeid.md)
104-
#### [Initializer Lists](initializer-lists.md)
105-
#### [Cast Notation and Introduction of safe_cast<>](cast-notation-and-introduction-of-safe-cast-angles.md)
10682
## [Pure and Verifiable Code (C++/CLI)](pure-and-verifiable-code-cpp-cli.md)
10783
### [How to: Create Verifiable C++ Projects (C++/CLI)](how-to-create-verifiable-cpp-projects-cpp-cli.md)
108-
### [How to: Migrate to -clr:safe (C++/CLI)](how-to-migrate-to-clr-safe-cpp-cli.md)
10984
### [Using Verifiable Assemblies with SQL Server (C++/CLI)](using-verifiable-assemblies-with-sql-server-cpp-cli.md)
11085
### [Converting Projects from Mixed Mode to Pure Intermediate Language](converting-projects-from-mixed-mode-to-pure-intermediate-language.md)
111-
## [Regular Expressions (C++/CLI)](regular-expressions-cpp-cli.md)
112-
## [File Handling and I-O (C++/CLI)](file-handling-and-i-o-cpp-cli.md)
113-
## [Graphics Operations (C++/CLI)](graphics-operations-cpp-cli.md)
114-
## [Windows Operations (C++/CLI)](windows-operations-cpp-cli.md)
115-
## [Data Access Using ADO.NET (C++/CLI)](data-access-using-adonet-cpp-cli.md)
116-
## [Interoperability with Other .NET Languages (C++/CLI)](interoperability-with-other-dotnet-languages-cpp-cli.md)
11786
## [Serialization (C++/CLI)](serialization-cpp-cli.md)
11887
## [Friend Assemblies (C++)](friend-assemblies-cpp.md)
11988
## [Managed Types (C++/CLI)](managed-types-cpp-cli.md)
@@ -128,10 +97,6 @@
12897
### [How to: Convert from a STL/CLR Container to a .NET Collection](how-to-convert-from-a-stl-clr-container-to-a-dotnet-collection.md)
12998
### [How to: Expose an STL/CLR Container from an Assembly](how-to-expose-an-stl-clr-container-from-an-assembly.md)
13099
### [for each, in](for-each-in.md)
131-
#### [Iterating Over C++ Standard Library Collection By Using for each](iterating-over-stl-collection-by-using-for-each.md)
132-
#### [How to: Iterate Over Arrays with for each](how-to-iterate-over-arrays-with-for-each.md)
133-
#### [How to: Iterate Over a Generic Collection with for each](how-to-iterate-over-a-generic-collection-with-for-each.md)
134-
#### [How to: Iterate Over a User-Defined Collection with for each](how-to-iterate-over-a-user-defined-collection-with-for-each.md)
135100
### [adapter (STL/CLR)](adapter-stl-clr.md)
136101
### [algorithm (STL/CLR)](algorithm-stl-clr.md)
137102
### [deque (STL/CLR)](deque-stl-clr.md)

0 commit comments

Comments
 (0)