@@ -23,19 +23,16 @@ public static CPlusPlusCodeGenerator Create(CPlusPlusCodeGeneratorConfig userCfg
2323 return new CPlusPlusCodeGenerator ( userCfg , langDef , new CPlusPlusConstantsDef ( ) , new CPlusPlusEarlyExitDef ( helper , userCfg . GeneratorOptions ) , new CPlusPlusHashDef ( ) ) ;
2424 }
2525
26- public override bool TryGenerate < T > ( GeneratorConfig < T > genCfg , IContext context , out string ? source )
26+ public override string Generate < T > ( ReadOnlySpan < T > data , GeneratorConfig < T > genCfg , IContext < T > context )
2727 {
2828 //C++ generator does not support chars outside ASCII
2929 if ( genCfg . DataType == DataType . Char && ( char ) ( object ) genCfg . Constants . MaxValue ! > 127 )
30- {
31- source = null ;
32- return false ;
33- }
30+ throw new InvalidOperationException ( "C++ generator does not support chars outside ASCII. Please use a different data type or reduce the max value to 127 or lower." ) ;
3431
35- return base . TryGenerate ( genCfg , context , out source ) ;
32+ return base . Generate ( data , genCfg , context ) ;
3633 }
3734
38- protected override void AppendHeader < T > ( StringBuilder sb , GeneratorConfig < T > genCfg , IContext context )
35+ protected override void AppendHeader < T > ( StringBuilder sb , GeneratorConfig < T > genCfg , IContext < T > context )
3936 {
4037 base . AppendHeader ( sb , genCfg , context ) ;
4138
@@ -70,7 +67,7 @@ protected override void AppendFooter<T>(StringBuilder sb, GeneratorConfig<T> gen
7067 """ ) ;
7168 }
7269
73- protected override OutputWriter < T > ? GetOutputWriter < T > ( GeneratorConfig < T > genCfg , IContext context ) => context switch
70+ protected override OutputWriter < T > ? GetOutputWriter < T > ( GeneratorConfig < T > genCfg , IContext < T > context ) => context switch
7471 {
7572 SingleValueContext < T > x => new SingleValueCode < T > ( x ) ,
7673 ArrayContext < T > x => new ArrayCode < T > ( x ) ,
@@ -80,7 +77,7 @@ protected override void AppendFooter<T>(StringBuilder sb, GeneratorConfig<T> gen
8077 HashSetChainContext < T > x => new HashSetChainCode < T > ( x ) ,
8178 HashSetLinearContext < T > x => new HashSetLinearCode < T > ( x ) ,
8279 HashSetPerfectContext < T > x => new HashSetPerfectCode < T > ( x ) ,
83- KeyLengthContext x => new KeyLengthCode < T > ( x ) ,
80+ KeyLengthContext < T > x => new KeyLengthCode < T > ( x ) ,
8481 _ => null
8582 } ;
8683}
0 commit comments