diff --git a/docs/build/reference/internal-partition.md b/docs/build/reference/internal-partition.md index 047e89c76cf..889ba738911 100644 --- a/docs/build/reference/internal-partition.md +++ b/docs/build/reference/internal-partition.md @@ -1,7 +1,7 @@ --- title: "/internalPartition" description: "Use the /internalPartition compiler option to treat the input file as an internal partition unit." -ms.date: 04/15/2022 +ms.date: 04/18/2022 author: "tylermsft" ms.author: "twhitney" f1_keywords: ["/internalPartition", "VC.Project.VCCLCompilerTool.Interface"] @@ -9,7 +9,7 @@ helpviewer_keywords: ["/internalPartition", "Translate include directives into i --- # `/internalPartition` -Use this switch to treat the input file on the command line as an [internal partition unit](http://eel.is/c%2B%2Bdraft/module#unit-4.3). +Use the **`/internalPartition`** compiler option to treat the input file as an *internal partition unit*, which is a [module partition implementation unit](../../cpp/modules-cpp.md#implementing-modules) that doesn't contribute to the external interface of the module. ## Syntax @@ -17,19 +17,17 @@ Use this switch to treat the input file on the command line as an [internal part ## Remarks -The following example demonstrates using the `/internalPartition` switch: - -`m-internals.cpp`: +The following example demonstrates how to use the `/internalPartition` option: ```cpp +// m-internals.cpp module m:internals; void internalFunc() {} // cannot have `export` since this is an internal partition ``` -`m.ixx`: - ```cpp +// m.ixx export module m; import :internals; // Cannot export this partition. @@ -43,7 +41,7 @@ To compile this interface: cl /std:c++latest /internalPartition /c m-internals.cpp ``` -This switch can't be used with the [`/interface`](interface.md) compiler switch. +This option can't be used with the [`/interface`](interface.md) compiler option. **`/internalPartition`** is available in Visual Studio 2019 version 16.10, or later.\ **`/internalPartition`** requires [/std:c++20](std-specify-language-standard-version.md) or later. diff --git a/docs/c-runtime-library/reference/matherr.md b/docs/c-runtime-library/reference/matherr.md index 45cbb55ca03..a3d52e22885 100644 --- a/docs/c-runtime-library/reference/matherr.md +++ b/docs/c-runtime-library/reference/matherr.md @@ -1,43 +1,44 @@ --- description: "Learn more about: _matherr" title: "_matherr" -ms.date: "04/05/2018" +ms.date: "04/18/2012" api_name: ["_matherr"] api_location: ["msvcrt.dll", "msvcr80.dll", "msvcr90.dll", "msvcr100.dll", "msvcr100_clr0400.dll", "msvcr110.dll", "msvcr110_clr0400.dll", "msvcr120.dll", "msvcr120_clr0400.dll", "ucrtbase.dll"] api_type: ["DLLExport"] topic_type: ["apiref"] f1_keywords: ["_matherr", "matherr"] helpviewer_keywords: ["_matherr function", "matherr function"] -ms.assetid: b600d66e-165a-4608-a856-8fb418d46760 --- -# _matherr +# `_matherr` Handles math errors. ## Syntax ```C -int _matherr( struct _exception * except ); +int _matherr(struct _exception *except); ``` ### Parameters -*except*
+*`except`*\ Pointer to the structure containing error information. ## Return Value -**_matherr** returns 0 to indicate an error, or a nonzero value to indicate success. If **_matherr** returns 0, an error message can be displayed and **errno** is set to an appropriate error value. If **_matherr** returns a nonzero value, no error message is displayed and **errno** remains unchanged. +**`_matherr`** returns 0 to indicate an error, or a nonzero value to indicate success: +- If **`_matherr`** returns 0, an error message can be displayed and **`errno`** is set to an appropriate error value. +- If **`_matherr`** returns a nonzero value, no error message is displayed and **`errno`** remains unchanged. -For more information about return codes, see [_doserrno, errno, _sys_errlist, and _sys_nerr](../../c-runtime-library/errno-doserrno-sys-errlist-and-sys-nerr.md). +For more information about return codes, see [`_doserrno`, `errno`, `_sys_errlist`, and `_sys_nerr`](../../c-runtime-library/errno-doserrno-sys-errlist-and-sys-nerr.md). ## Remarks -The **_matherr** function processes errors generated by the floating-point functions of the math library. These functions call **_matherr** when an error is detected. +The **`_matherr`** function processes errors generated by the floating-point functions of the math library. These functions call **`_matherr`** when an error is detected. This interaction isn't impacted by the [floating-point mode of the compiler](../../build/reference/fp-specify-floating-point-behavior.md) or the [floating point control word](../../c-runtime-library/reference/control87-controlfp-control87-2.md). Since **`_matherr`** is a library function, math [intrinsic functions](../../intrinsics/compiler-intrinsics.md) won't call it. -For special error handling, you can provide a different definition of **_matherr**. If you use the dynamically linked version of the C run-time library (CRT), you can replace the default **_matherr** routine in a client executable with a user-defined version. However, you cannot replace the default **_matherr** routine in a DLL client of the CRT DLL. +For special error handling, you can provide a different definition of **`_matherr`**. If you use the dynamically linked version of the C run-time library (CRT), you can replace the default **`_matherr`** routine in a client executable with a user-defined version. However, you can't replace the default **`_matherr`** routine in a DLL client of the CRT DLL. -When an error occurs in a math routine, **_matherr** is called with a pointer to an **_exception** type structure (defined in \) as an argument. The **_exception** structure contains the following elements. +When an error occurs in a math routine, **`_matherr`** is called with a pointer to an **`_exception`** type structure (defined in ``) as an argument. The **`_exception`** structure contains the following elements. ```C struct _exception @@ -50,36 +51,36 @@ struct _exception }; ``` -The **type** member specifies the type of math error. It is one of the following values, defined in \: +The **`type`** member specifies the type of math error. It's one of the following values, defined in ``: |Macro|Meaning| |-|-| -| **_DOMAIN** | Argument domain error | -| **_SING** | Argument singularity | -| **_OVERFLOW** | Overflow range error | -| **_PLOSS** | Partial loss of significance | -| **_TLOSS** | Total loss of significance | -| **_UNDERFLOW** | The result is too small to be represented. (This condition is not currently supported.) | +| **`_DOMAIN`** | Argument domain error | +| **`_SING`** | Argument singularity | +| **`_OVERFLOW`** | Overflow range error | +| **`_PLOSS`** | Partial loss of significance | +| **`_TLOSS`** | Total loss of significance | +| **`_UNDERFLOW`** | The result is too small to be represented. (This condition isn't currently supported.) | -The structure member **name** is a pointer to a null-terminated string containing the name of the function that caused the error. The structure members **arg1** and **arg2** specify the values that caused the error. If only one argument is given, it is stored in **arg1**. +The structure member **`name`** is a pointer to a null-terminated string containing the name of the function that caused the error. The structure members **`arg1`** and **`arg2`** specify the values that caused the error. If only one argument is given, it's stored in **`arg1`**. -The default return value for the given error is **retval**. If you change the return value, it must specify whether an error actually occurred. +The default return value for the given error is **`retval`**. If you change the return value, it must specify whether an error actually occurred. ## Requirements |Routine|Required header| |-------------|---------------------| -|**_matherr**|\| +|**`_matherr`**|``| For more compatibility information, see [Compatibility](../../c-runtime-library/compatibility.md). ## Example ```C -// crt_matherr.c -/* illustrates writing an error routine for math -* functions. The error function must be: -* _matherr +/* crt_matherr.c +* Illustrates writing an error routine for math +* functions. +* The error handling function must be named _matherr */ #include @@ -102,27 +103,27 @@ int main() * returns the natural or base-10 logarithm of the absolute value * of the argument and suppresses the usual error message. */ -int _matherr( struct _exception *except ) +int _matherr(struct _exception *except) { /* Handle _DOMAIN errors for log or log10. */ - if( except->type == _DOMAIN ) + if (except->type == _DOMAIN) { - if( strcmp( except->name, "log" ) == 0 ) + if (strcmp(except->name, "log") == 0) { - except->retval = log( -(except->arg1) ); - printf( "Special: using absolute value: %s: _DOMAIN " - "error\n", except->name ); + except->retval = log(-(except->arg1)); + printf("Special: using absolute value: %s: _DOMAIN " + "error\n", except->name); return 1; } - else if( strcmp( except->name, "log10" ) == 0 ) + else if (strcmp(except->name, "log10") == 0) { - except->retval = log10( -(except->arg1) ); - printf( "Special: using absolute value: %s: _DOMAIN " - "error\n", except->name ); + except->retval = log10(-(except->arg1)); + printf("Special: using absolute value: %s: _DOMAIN " + "error\n", except->name); return 1; } } - printf( "Normal: " ); + printf("Normal: "); return 0; /* Else use the default actions */ } ``` @@ -137,4 +138,4 @@ Normal: log( 0.0 ) = -inf ## See also -[Floating-Point Support](../../c-runtime-library/floating-point-support.md)
+[Floating-Point Support](../../c-runtime-library/floating-point-support.md)