diff --git a/docs/c-runtime-library/crt-debugging-techniques.md b/docs/c-runtime-library/crt-debugging-techniques.md index 39d625f0e1..323c0d36b9 100644 --- a/docs/c-runtime-library/crt-debugging-techniques.md +++ b/docs/c-runtime-library/crt-debugging-techniques.md @@ -18,7 +18,7 @@ When you debug a program that uses the C run-time library, these debugging techn The C runtime (CRT) library provides extensive debugging support. To use one of the CRT debug libraries, you must link with [`/DEBUG`](/cpp/build/reference/debug-generate-debug-info) and compile with [`/MDd`, `/MTd`, or `/LDd`](../build/reference/md-mt-ld-use-run-time-library.md). -The main definitions and macros for CRT debugging can be found in the`` header file. +The main definitions and macros for CRT debugging can be found in the `` header file. The functions in the CRT debug libraries are compiled with debug information ([/Z7, /Zd, /Zi, /ZI (Debug Information Format)](../build/reference/z7-zi-zi-debug-information-format.md)) and without optimization. Some functions contain assertions to verify parameters that are passed to them, and source code is provided. With this source code, you can step into CRT functions to confirm that the functions are working as you expect and check for bad parameters or memory states. (Some CRT technology is proprietary and doesn't provide source code for exception handling, floating point, and a few other routines.) @@ -26,7 +26,7 @@ For more information on the various run-time libraries you can use, see [C Run-T ## Macros for reporting -For debugging, you can use the `_RPTn` and `_RPTFn` macros, defined in``, to replace the use of `printf` statements. You don't need to enclose them in `#ifdef` directives, because they automatically disappear in your release build when `_DEBUG` isn't defined. +For debugging, you can use the `_RPTn` and `_RPTFn` macros, defined in ``, to replace the use of `printf` statements. You don't need to enclose them in `#ifdef` directives, because they automatically disappear in your release build when `_DEBUG` isn't defined. | Macro | Description | |---|---| @@ -81,7 +81,7 @@ You can write several kinds of custom debug hook functions that allow you to ins ### Client block hook functions -If you want to validate or report the contents of the data stored in `_CLIENT_BLOCK` blocks, you can write a function specifically for this purpose. The function that you write must have a prototype similar to the following, as defined in``: +If you want to validate or report the contents of the data stored in `_CLIENT_BLOCK` blocks, you can write a function specifically for this purpose. The function that you write must have a prototype similar to the following, as defined in ``: ```cpp void YourClientDump(void *, size_t) @@ -91,7 +91,7 @@ In other words, your hook function should accept a `void` pointer to the beginni Once you've installed your hook function using [_CrtSetDumpClient](./reference/crtsetdumpclient.md), it will be called every time a `_CLIENT_BLOCK` block is dumped. You can then use [_CrtReportBlockType](./reference/crtreportblocktype.md) to get information on the type or subtype of dumped blocks. -The pointer to your function that you pass to `_CrtSetDumpClient` is of type `_CRT_DUMP_CLIENT`, as defined in``: +The pointer to your function that you pass to `_CrtSetDumpClient` is of type `_CRT_DUMP_CLIENT`, as defined in ``: ```cpp typedef void (__cdecl *_CRT_DUMP_CLIENT) @@ -113,7 +113,7 @@ int YourAllocHook(int nAllocType, void *pvData, const unsigned char * szFileName, int nLine ) ``` -The pointer that you pass to [`_CrtSetAllocHook`](./reference/crtsetallochook.md) is of type `_CRT_ALLOC_HOOK`, as defined in``: +The pointer that you pass to [`_CrtSetAllocHook`](./reference/crtsetallochook.md) is of type `_CRT_ALLOC_HOOK`, as defined in ``: ```cpp typedef int (__cdecl * _CRT_ALLOC_HOOK) diff --git a/docs/standard-library/unordered-set-class.md b/docs/standard-library/unordered-set-class.md index a0d02bace6..be1541f042 100644 --- a/docs/standard-library/unordered-set-class.md +++ b/docs/standard-library/unordered-set-class.md @@ -1089,7 +1089,7 @@ Key value to search for. ### Remarks -The member function returns a pair of iterators `X` such that`[X.first, X.second)` delimits just those elements of the controlled sequence that have equivalent ordering with *`keyval`*. If no such elements exist, both iterators are `end()`. +The member function returns a pair of iterators `X` such that `[X.first, X.second)` delimits just those elements of the controlled sequence that have equivalent ordering with *`keyval`*. If no such elements exist, both iterators are `end()`. ### Example @@ -2376,7 +2376,7 @@ The `initializer_list` containing the elements to copy. ### Remarks -The first constructor specifies a copy of the sequence controlled by *`Right`*. The second constructor specifies an empty controlled sequence. The third constructor specifies a copy of the sequence by moving *`Right`* The fourth through eighth constructors use an `initializer_list` to specify the elements to copy. The ninth constructor inserts the sequence of element values`[first, last)`. +The first constructor specifies a copy of the sequence controlled by *`Right`*. The second constructor specifies an empty controlled sequence. The third constructor specifies a copy of the sequence by moving *`Right`* The fourth through eighth constructors use an `initializer_list` to specify the elements to copy. The ninth constructor inserts the sequence of element values `[first, last)`. All constructors also initialize several stored values. For the copy constructor, the values are obtained from *`Right`*. Otherwise: