Skip to content

Commit 770646f

Browse files
authored
Merge pull request #5492 from MicrosoftDocs/FromPublicMasterBranch
Confirm merge from FromPublicMasterBranch to main to sync with https://github.com/MicrosoftDocs/cpp-docs (branch main)
2 parents 762ab5b + 3e19097 commit 770646f

File tree

2 files changed

+19
-10
lines changed

2 files changed

+19
-10
lines changed
Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,26 @@
11
---
22
description: "Learn more about: Compiler Error C2526"
33
title: "Compiler Error C2526"
4-
ms.date: "11/04/2016"
4+
ms.date: "03/08/2024"
55
f1_keywords: ["C2526"]
66
helpviewer_keywords: ["C2526"]
7-
ms.assetid: 0f8c554c-f990-457e-bcae-b6f273481825
87
---
98
# Compiler Error C2526
109

1110
'identifier1' : C linkage function cannot return C++ class 'identifier2'
1211

1312
A function defined with C linkage cannot return a user-defined type.
13+
14+
The following sample generates C2526:
15+
16+
```cpp
17+
// C2526.cpp
18+
// compile with: /c
19+
template <typename T>
20+
class A {};
21+
22+
extern "C" A<int> func() // C2526
23+
{
24+
return A<int>();
25+
}
26+
```
Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,22 @@
11
---
22
description: "Learn more about: Compiler Error C2537"
33
title: "Compiler Error C2537"
4-
ms.date: "11/04/2016"
4+
ms.date: "03/08/2024"
55
f1_keywords: ["C2537"]
66
helpviewer_keywords: ["C2537"]
7-
ms.assetid: aee81d8e-300e-4a8b-b6c4-b3828398b34e
87
---
98
# Compiler Error C2537
109

1110
'specifier' : illegal linkage specification
1211

13-
Possible causes:
14-
15-
1. The linkage specifier is not supported. Only the "C" linkage specifier is supported.
16-
17-
1. "C" linkage is specified for more than one function in a set of overloaded functions. This is not allowed.
12+
The linkage specifier is not supported. Only the "C" and "C++" linkage specifiers are supported.
1813

1914
The following sample generates C2537:
2015

2116
```cpp
2217
// C2537.cpp
2318
// compile with: /c
24-
extern "c" void func(); // C2537
19+
extern "c" void func1(); // C2537
2520
extern "C" void func2(); // OK
21+
extern "C++" void func3(); // OK
2622
```

0 commit comments

Comments
 (0)