You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Update open-wopen.md
Clarify that _O_TEMPORARY sets FILE_SHARE_DELETE.
* Update other pages that mention _O_TEMPORARY effects.
* New article - IDL method wizard
* update after review
* update after review
* Update after review
* Update after review
* Updating - Add property wizard for VS2022
* Updating broken links
* Update after review
* New article - Add an IDL Property
* link updation
* Update after review
* update after review
* update after review
* New article - IDL MFC property wizard
* Broken link fixed
* Broken link fixed
* Update virtual-functions.md
* update for links
* Updating links
* Address cpp-docs 3780 3782 3790 3791 3805
* Attempt correction of table format
* Add documentation for compiler error C2956 and update error text (MicrosoftDocs#4176)
* Add documentation for compiler error C2956 and update error text
* Add TOC entry
* Update for grammar and my own comprehension.
Sometimes, you just get carried away. This version could use some simplification.
* Simplify.
Address remarks, attempt simplification.
Acrolinx all the things.
* More updates per review
Co-authored-by: Colin Robertson <corob@microsoft.com>
* Address cpp-docs 3816
* Address non-blocking issues from 4207
* fix for sample program.
* edits
* edit pass. Move to ide location
* minor edit
* fix link
* Final update
* final update
* final update
* resolving blocking issue
* resolving blocking issue
* ToC update for new article
* ToC update
* link update
* Correct inconsistent formatting for the `_O_EXCL` constant in the docs for the open functions
* Update c28195.md
* Update in alt-text
* Update in alt-text
* Final Update- See also section
* edit pass
* edit pass
* more cleanup
* typo
* small edit
* Final update
* edit pass
* edit pass
* formatting for scannability
* acrolinx
* one more try at spacing
* final update
* VMCS -> VMXON
According to the intel IA32 development manual (Volume 3 C3 23.7):
"Before executing VMXON, software should allocate a naturally aligned 4-KByte region of memory that a logical
processor may use to support VMX operation. This region is called the VMXON region."
* edit and add links
* fix links
* add code example
* click->tick
* Update date, link to Intel docs
* Another go at updating the description
* Fix stray double-quote
* Address issue in DD PR 1393452
* add /interface and /internal-partition - draft (MicrosoftDocs#4227)
* add /interface and /internal-partition - draft
* add example
* fix formatting
* update text regarding example
* tech review
* link updates
* fix switch name and link
* edits
* reorder version info
* cleanup
* add /tp flag
* fix command line
Co-authored-by: TylerMSFT <Tyler.Whitney@microsoft.com>
Co-authored-by: Steve Wishnousky <stwish@microsoft.com>
Co-authored-by: rachana-satao <83084319+rachana-satao@users.noreply.github.com>
Co-authored-by: opbld15 <opbld15@microsoft.com>
Co-authored-by: Colin Robertson <corob@microsoft.com>
Co-authored-by: opbld16 <opbld16@microsoft.com>
Co-authored-by: opbld17 <opbld17@microsoft.com>
Co-authored-by: atikmapari <31974726+atikmapari@users.noreply.github.com>
Co-authored-by: PRMerger19 <prmrgr19@microsoft.com>
Co-authored-by: Ming Ho <94572161+homing1@users.noreply.github.com>
Co-authored-by: PRMerger5 <prmergr5@microsoft.com>
Co-authored-by: Regan Downer <97987445+v-regandowner@users.noreply.github.com>
Co-authored-by: Jonathan Emmett <joemmett@microsoft.com>
Co-authored-by: Tamara K <93546702+tamarakhader@users.noreply.github.com>
Co-authored-by: TylerMSFT <Tyler.Whitney@microsoft.com>
Co-authored-by: PRMerger17 <prmrgr17@microsoft.com>
Co-authored-by: Paula Miller <v-paulmi@microsoft.com>
Co-authored-by: Martin Storsjö <martin@martin.st>
Co-authored-by: Sunny Chatterjee <sunnych@microsoft.com>
Co-authored-by: Tyler Whitney <TylerMSFT@users.noreply.github.com>
Co-authored-by: Colin Cooper <72402153+v-ccolin@users.noreply.github.com>
Co-authored-by: krispy <monstertyo@gmail.com>
Co-authored-by: PRMerger8 <prmrgr8@microsoft.com>
Co-authored-by: PRMerger10 <prmrgr10@microsoft.com>
helpviewer_keywords: ["/interface", "Translate include directives into import directives"]
9
+
---
10
+
# `/interface`
11
+
12
+
This switch instructs the compiler to treat the input file on the command line as a module interface unit.
13
+
14
+
## Syntax
15
+
16
+
> **`/interface`***`filename`*
17
+
18
+
## Remarks
19
+
20
+
Use this switch when a module interface has a different extension than `.ixx`.
21
+
22
+
In the following example, the module interface has a `.cppm` extension instead of `.ixx`, so the `/interface` switch is used to compile it as a module interface:
The compiler derives the name for the generated `.ifc` file from the module interface name. For example, given a module name `MyModule` defined in `my-module.cppm`, the generated `.ifc` will be named `MyModule.ifc`.
29
+
30
+
This switch must be used in with the [`/TP` (Specify source file type)](tc-tp-tc-tp-specify-source-file-type.md) compiler flag.
31
+
32
+
**`/interface`** is available in Visual Studio 2019 version 16.10, or later.\
33
+
**`/interface`** requires [/std:c++20](std-specify-language-standard-version.md) or later.
34
+
35
+
## See also
36
+
37
+
[Overview of modules in C++](../../cpp/modules-cpp.md)\
38
+
[Using C++ Modules in MSVC from the Command Line](https://devblogs.microsoft.com/cppblog/using-cpp-modules-in-msvc-from-the-command-line-part-1/)
This switch can't be used with the [`/interface`](interface.md) compiler switch.
47
+
48
+
**`/internalPartition`** is available in Visual Studio 2019 version 16.10, or later.\
49
+
**`/internalPartition`** requires [/std:c++20](std-specify-language-standard-version.md) or later.
50
+
51
+
## See also
52
+
53
+
[Overview of modules in C++](../../cpp/modules-cpp.md)\
54
+
[Using C++ Modules in MSVC from the Command Line](https://devblogs.microsoft.com/cppblog/using-cpp-modules-in-msvc-from-the-command-line-part-1/)\
55
+
[C++ Modules conformance improvements with MSVC in Visual Studio 2019 16.5](https://devblogs.microsoft.com/cppblog/c-modules-conformance-improvements-with-msvc-in-visual-studio-2019-16-5/#module-partitions)
The accessibility of an interface outside the assembly. Possible values are **`public`** and **`private`**. **`private`** is the default. Nested interfaces cannot have an *interface_access* specifier.
25
+
*`interface_access`*\
26
+
The accessibility of an interface outside the assembly. Possible values are **`public`** and **`private`**. **`private`** is the default. Nested interfaces can't have an *`interface_access`* specifier.
27
27
28
-
*name*<br/>
28
+
*`name`*\
29
29
The name of the interface.
30
30
31
-
*inherit_access*<br/>
32
-
The accessibility of *base_interface*. The only permitted accessibility for a base interface is **`public`** (the default).
31
+
*`inherit_access`*\
32
+
The accessibility of *`base_interface`*. The only permitted accessibility for a base interface is **`public`** (the default).
33
33
34
-
*base_interface*<br/>
35
-
(Optional) A base interface for interface *name*.
34
+
*`base_interface`*\
35
+
(Optional) A base interface for interface *`name`*.
36
36
37
37
### Remarks
38
38
39
-
**interface struct** is equivalent to **interface class**.
39
+
**`interface struct`** is equivalent to **`interface class`**.
40
40
41
41
An interface can contain declarations for functions, events, and properties. All interface members have public accessibility. An interface can also contain static data members, functions, events, and properties, and these static members must be defined in the interface.
42
42
43
-
An interface defines how a class may be implemented. An interface is not a class and classes can only implement interfaces. When a class defines a function declared in an interface, the function is implemented, not overridden. Therefore, name lookup does not include interface members.
43
+
An interface defines how a class may be implemented. An interface isn't a class and classes can only implement interfaces. When a class defines a function declared in an interface, the function is implemented, not overridden. Therefore, name lookup doesn't include interface members.
44
44
45
-
A class or struct that derives from an interface must implement all members of the interface. When implementing interface *name* you must also implement the interfaces in the `base_interface` list.
45
+
A `class` or `struct` that derives from an interface must implement all members of the interface. When implementing interface *`name`*, you must also implement the interfaces in the *`base_interface`* list.
For information on other CLR types, see [Classes and Structs](classes-and-structs-cpp-component-extensions.md).
54
54
55
-
You can detect at compile time if a type is an interface with `__is_interface_class(type)`. For more information, see [Compiler Support for Type Traits](compiler-support-for-type-traits-cpp-component-extensions.md).
55
+
You can detect at compile time if a type is an interface with `__is_interface_class(type)`. For more information, see [Compiler support for type traits](compiler-support-for-type-traits-cpp-component-extensions.md).
56
56
57
-
In the development environment, you can get F1 help on these keywords by highlighting the keyword, (**`interface class`**, for example) and pressing F1.
57
+
In the development environment, you can get F1 help on these keywords by highlighting the keyword (for example, **`interface class`**) and pressing **F1**.
0 commit comments