Parameters: need to apply the scale when construct a Parameter
...since we do not check beforehand what value was specified; it seems preferable to do this ''in the parameter implementation'', as the builder can be expected to get a broad API, while the ParamData is the natural place to enforce an invariant
This commit is contained in:
parent
c6978c3aa5
commit
a4a65f23dc
4 changed files with 28 additions and 6 deletions
|
|
@ -104,8 +104,8 @@ namespace par {
|
|||
Provision* src_;
|
||||
|
||||
public:
|
||||
ParamData (VAL initVal, Scale<VAL> scale)
|
||||
: val_{std::move (initVal)}
|
||||
ParamData (VAL const& initVal, Scale<VAL> scale)
|
||||
: val_{scale.conform(initVal)}
|
||||
, src_{nullptr}
|
||||
{
|
||||
Disposition::markBaseDomain<VAL>();
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ namespace par {
|
|||
{
|
||||
using ImplPackage = ParamData<VAL, CopySupportMarker>; //////////////////////////////////////////TICKET #1197 : remove the necessity to inject the CopySupportMarker
|
||||
ImplPackage* typeTag{nullptr};
|
||||
Parameter resParam{typeTag, std::move (initVal_), std::move (scale_)};
|
||||
Parameter resParam{typeTag, initVal_, std::move (scale_)};
|
||||
return resParam;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -99,8 +99,11 @@ namespace test{
|
|||
Parameter ps = Parameter::forValue(123.45f)
|
||||
.maxVal (23.55)
|
||||
.build();
|
||||
CHECK (roughEQ (23.55 , ps.getVal<double>()));
|
||||
ps.setVal (100);
|
||||
CHECK (roughEQ (23.55 , ps.getVal<double>()));
|
||||
ps.setVal ( 23);
|
||||
CHECK (roughEQ (23.0 , ps.getVal<double>()));
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////OOO (End) Prototyping 10/2026
|
||||
Parameter p2 = Parameter::from(p1)
|
||||
|
|
|
|||
|
|
@ -88155,6 +88155,9 @@ Prop.1: dist%3 1 2 0 1 2 0
|
|||
</node>
|
||||
<node COLOR="#435e98" CREATED="1792286814269" ID="ID_1948960327" MODIFIED="1792287543868" TEXT="Beschränkung des Registration-Space ⟹ Exception werfen"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1792327408895" ID="ID_179945417" MODIFIED="1792327424236" TEXT="Scale sofort zu Beginn auch einmal auf den Value anwenden">
|
||||
<icon BUILTIN="flag-pink"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -88293,12 +88296,24 @@ Prop.1: dist%3 1 2 0 1 2 0
|
|||
<node COLOR="#5b280f" CREATED="1788656871646" ID="ID_1325131915" MODIFIED="1788656955176" TEXT="generisch-getypter Code kann nicht von runtime-dynamischen Typ aufgerufen werden">
|
||||
<icon BUILTIN="closed"/>
|
||||
</node>
|
||||
<node CREATED="1788657034330" ID="ID_60370643" MODIFIED="1788657050967" TEXT="⟹ muß zwingend irgendwo eine Delegate haben..."/>
|
||||
<node CREATED="1788657034330" ID="ID_60370643" MODIFIED="1788657050967" TEXT="⟹ muß zwingend irgendwo eine Delegate haben...">
|
||||
<node CREATED="1792326693987" ID="ID_1304117406" MODIFIED="1792326705987" TEXT="Idee: den getypten Builder in einen PolymorphicValue legen"/>
|
||||
<node CREATED="1792326980597" ID="ID_1209132614" MODIFIED="1792327007767" TEXT="das Delegate müßte dann die Typkonvertierung der Werte machen"/>
|
||||
<node CREATED="1792327018765" ID="ID_574806581" MODIFIED="1792327035157" TEXT="am Ende kommt wieder ein opaquer Parameter(container) raus"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1788760078240" ID="ID_1283385725" MODIFIED="1788760097936" TEXT="alternativer Ansatz : Builder-Typ unterwegs schwenken">
|
||||
</node>
|
||||
<node COLOR="#5b280f" CREATED="1788760078240" ID="ID_1283385725" MODIFIED="1792327058347" TEXT="alternativer Ansatz : Builder-Typ unterwegs schwenken">
|
||||
<icon BUILTIN="idea"/>
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
<node CREATED="1788760099677" ID="ID_1558756181" MODIFIED="1788760111067" TEXT="sobald etwas eingeführt wird, das numerisch ist, haben wir einen Typ"/>
|
||||
<node CREATED="1788760113459" ID="ID_207791984" MODIFIED="1788760128581" TEXT="für die Anwendung wird dann aber die implizite Typkonvertierung gemacht"/>
|
||||
<node CREATED="1788760113459" ID="ID_207791984" MODIFIED="1788760128581" TEXT="für die Anwendung wird dann aber die implizite Typkonvertierung gemacht">
|
||||
<node COLOR="#5b280f" CREATED="1792326616149" ID="ID_1408192727" MODIFIED="1792327128951" TEXT="will man das wirklich??">
|
||||
<arrowlink COLOR="#c0024c" DESTINATION="ID_583867473" ENDARROW="Default" ENDINCLINATION="25;-81;" ID="Arrow_ID_1998125976" STARTARROW="None" STARTINCLINATION="-106;0;"/>
|
||||
<icon BUILTIN="stop-sign"/>
|
||||
</node>
|
||||
<node CREATED="1792326647489" ID="ID_527264440" MODIFIED="1792326661563" TEXT="ehr will man den impliziten Typ weiterverwenden"/>
|
||||
<node CREATED="1792326662671" ID="ID_1596481621" MODIFIED="1792326676025" TEXT="oder aber explizit auf einen anderen Typ schwenken"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1788760129351" ID="ID_1496419993" MODIFIED="1788760155703" TEXT="offenes Problem: weitere Angaben die nicht typ-gebunden sind">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1788760157345" ID="ID_610381104" MODIFIED="1788760167589" TEXT="ggfs eine symbolische Spec einführen?">
|
||||
|
|
@ -88308,6 +88323,10 @@ Prop.1: dist%3 1 2 0 1 2 0
|
|||
<node CREATED="1788760193736" ID="ID_790320052" MODIFIED="1788760197204" TEXT="(und dann parsen)"/>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#7f021a" CREATED="1792327078736" ID="ID_583867473" MODIFIED="1792327155931" TEXT="also ehr nicht (aber das mit dem »Typ schwenken« bleibt im Einzelfall möglich)">
|
||||
<linktarget COLOR="#c0024c" DESTINATION="ID_583867473" ENDARROW="Default" ENDINCLINATION="25;-81;" ID="Arrow_ID_1998125976" SOURCE="ID_1408192727" STARTARROW="None" STARTINCLINATION="-106;0;"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
|
|||
Loading…
Reference in a new issue