Skip to content

Commit 99e8230

Browse files
committed
Version 0.0.21. Using generic type constraint (C#) as hint to pass the argument by reference in C++.
1 parent 07f9100 commit 99e8230

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

Platform.RegularExpressions.Transformer.CSharpToCpp/CSharpToCppTransformer.cs

+3
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,9 @@ public class CSharpToCppTransformer : Transformer
5959
// private const int MaxPath = 92;
6060
// static const int MaxPath = 92;
6161
(new Regex(@"private (const|static readonly) ([a-zA-Z0-9]+) ([_a-zA-Z0-9]+) = ([^;]+);"), "static const $2 $3 = $4;", null, 0),
62+
// ArgumentNotNull(EnsureAlwaysExtensionRoot root, TArgument argument) where TArgument : class
63+
// ArgumentNotNull(EnsureAlwaysExtensionRoot root, TArgument& argument)
64+
(new Regex(@"(?<before> [a-zA-Z]+\(([a-zA-Z *,]+, |))(?<type>[a-zA-Z]+)(?<after>(| [a-zA-Z *,]+)\))[ \r\n]+where \k<type> : class"), "${before}${type}&${after}", null, 0),
6265
// protected virtual
6366
// virtual
6467
(new Regex(@"protected virtual"), "virtual", null, 0),

Platform.RegularExpressions.Transformer.CSharpToCpp/Platform.RegularExpressions.Transformer.CSharpToCpp.csproj

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<Description>LinksPlatform's Platform.RegularExpressions.Transformer.CSharpToCpp Class Library</Description>
55
<Copyright>Konstantin Diachenko</Copyright>
66
<AssemblyTitle>Platform.RegularExpressions.Transformer.CSharpToCpp</AssemblyTitle>
7-
<VersionPrefix>0.0.20</VersionPrefix>
7+
<VersionPrefix>0.0.21</VersionPrefix>
88
<Authors>Konstantin Diachenko</Authors>
99
<TargetFrameworks>net471;netstandard2.0;netstandard2.1</TargetFrameworks>
1010
<AssemblyName>Platform.RegularExpressions.Transformer.CSharpToCpp</AssemblyName>
@@ -24,7 +24,7 @@
2424
<IncludeSymbols>true</IncludeSymbols>
2525
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
2626
<LangVersion>latest</LangVersion>
27-
<PackageReleaseNotes>Added support for NotSupportedException, NotImplementedException, ArgumentException and ArgumentNullException exceptions.</PackageReleaseNotes>
27+
<PackageReleaseNotes>Using generic type constraint (C#) as hint to pass the argument by reference in C++.</PackageReleaseNotes>
2828
</PropertyGroup>
2929

3030
<ItemGroup Condition="$(TargetFramework.StartsWith('net4')) AND '$(MSBuildRuntimeType)' == 'Core' AND '$(OS)' != 'Windows_NT'">

0 commit comments

Comments
 (0)