Skip to content

Repo sync for protected CLA branch #3251

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 10 commits into from
Jul 13, 2021
2 changes: 1 addition & 1 deletion docs/build/vscpp-step-0-installation.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Install C and C++ support in Visual Studio
description: "Learn how to install Visual Studio with support for Microsoft C/C++ and related workloads."
ms.custom: "mvc"
ms.custom: "vs-acquisition"
ms.date: 11/05/2020
ms.topic: "tutorial"
ms.devlang: "cpp"
Expand Down
22 changes: 13 additions & 9 deletions docs/cpp/template-specialization-cpp.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
description: "Learn more about: Template Specialization (C++)"
title: "Template Specialization (C++)"
ms.date: "11/04/2016"
ms.date: 07/09/2021
helpviewer_keywords: ["partial specialization of class templates"]
ms.assetid: f3c67c0b-3875-434a-b8d8-bb47e99cf4f0
---
Expand All @@ -17,6 +17,8 @@ Class templates can be partially specialized, and the resulting class is still a

```cpp
// partial_specialization_of_class_templates.cpp
#include <stdio.h>

template <class T> struct PTS {
enum {
IsPointer = 0,
Expand All @@ -40,24 +42,25 @@ template <class T, class U> struct PTS<T U::*> {

struct S{};

extern "C" int printf_s(const char*,...);

int main() {
printf_s("PTS<S>::IsPointer == %d PTS<S>::IsPointerToDataMember == %d\n",
printf_s("PTS<S>::IsPointer == %d \nPTS<S>::IsPointerToDataMember == %d\n",
PTS<S>::IsPointer, PTS<S>:: IsPointerToDataMember);
printf_s("PTS<S*>::IsPointer == %d PTS<S*>::IsPointerToDataMember ==%d\n"
printf_s("PTS<S*>::IsPointer == %d \nPTS<S*>::IsPointerToDataMember == %d\n"
, PTS<S*>::IsPointer, PTS<S*>:: IsPointerToDataMember);
printf_s("PTS<int S::*>::IsPointer == %d PTS"
printf_s("PTS<int S::*>::IsPointer == %d \nPTS"
"<int S::*>::IsPointerToDataMember == %d\n",
PTS<int S::*>::IsPointer, PTS<int S::*>::
IsPointerToDataMember);
}
```

```Output
PTS<S>::IsPointer == 0 PTS<S>::IsPointerToDataMember == 0
PTS<S*>::IsPointer == 1 PTS<S*>::IsPointerToDataMember ==0
PTS<int S::*>::IsPointer == 0 PTS<int S::*>::IsPointerToDataMember == 1
PTS<S>::IsPointer == 0
PTS<S>::IsPointerToDataMember == 0
PTS<S*>::IsPointer == 1
PTS<S*>::IsPointerToDataMember == 0
PTS<int S::*>::IsPointer == 0
PTS<int S::*>::IsPointerToDataMember == 1
```

## Example: Partial specialization for pointer types
Expand Down Expand Up @@ -159,6 +162,7 @@ int main() {
xp.add(&j);
xp.add(p);
xp.add(p + 1);
delete[] p;
p = NULL;
xp.add(p);
xp.print();
Expand Down
4 changes: 2 additions & 2 deletions docs/standard-library/chrono-functions.md
Original file line number Diff line number Diff line change
Expand Up @@ -538,7 +538,7 @@ In ISO 8601, weeks begin with Monday. The first week of the year must include Ja
| `year_month_weekday_last` | D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, e, a, A, u, w |
| `zoned_time` | z, Z, c, x, X, D, F, Y, C, y, b, B, h, m, d, e, a, A, u, w, H, I, M, S, r, R, T, p, g, G, U, V, W |

<a name="notice"></a><sup>1</sup>The implementation is currently consistent with [strftime](https://docs.microsoft.com/cpp/c-runtime-library/reference/strftime-wcsftime-strftime-l-wcsftime-l) in that although `O` (letter O) and `e` are accepted, they are ignored. That is, `"%Od"` is interpreted as `"%d"`.
<a name="notice"></a><sup>1</sup>The implementation is currently consistent with [strftime](../c-runtime-library/reference/strftime-wcsftime-strftime-l-wcsftime-l.md) in that although `O` (letter O) and `e` are accepted, they are ignored. That is, `"%Od"` is interpreted as `"%d"`.

## <a name="std-chrono-get-leap-second-info"></a> `get_leap_second_info`

Expand Down Expand Up @@ -843,4 +843,4 @@ Unless `ToDuration` is a specialization of [`duration`](../standard-library/dura
[`chrono` operators](./chrono-operators.md)\
[`duration` class](./duration-class.md)\
[`time_point` class](./time-point-class.md)\
[`time_zone` class](./time-zone-class.md)
[`time_zone` class](./time-zone-class.md)