Erzwinge, dass alle QNaN normal NaN (SNaN) sind, sodass Ausnahmen ausgelöst werden

9

Ich habe Visual Studio so konfiguriert, dass Gleitkommaausnahmen über die _controlfp-Funktion ausgelöst werden. Dies funktioniert für NAN und INF, aber nicht für QNAN. I.e. Quiet NaNs verursachen keine Ausnahme. Gibt es eine Funktion oder eine Konfigurationsoption für Visual Studio 2008/2010, die dazu führt, dass QNANs stattdessen NANs sind, sodass sie Ausnahmen auslösen?

    
Dave 15.12.2010, 21:34
quelle

1 Antwort

1

Einige hilfreiche Tipps, obwohl ich noch nie etwas im Entferntesten so gemacht habe:

Lesen Sie: Ссылка

Die resultierende Suche im Internet (für die ich eigentlich nur 30 Sekunden gebraucht habe) lässt mich glauben, dass dies normalerweise mit einer Compiler-Option möglich ist.

Ich erinnere mich jedoch auch daran, dass das Aktivieren / Deaktivieren von Traps programmgesteuert spezifiziert werden kann, und insbesondere in Windows kann dies durch so ziemlich jedes Programm geschehen, beispielsweise wenn ein Drucker zum Drucken verwendet wird. Wenn Sie diese Option programmgesteuert ändern, setzen Sie sie außerdem so bald wie möglich auf den vorherigen Wert zurück. Wenn Benutzer von .NET versuchen, Ihren Code zu verwenden, haben sie möglicherweise Probleme.

(Mit anderen Worten, Ihre Verwendung von _controlfp könnte durch eine andere Routine überschrieben werden, vorausgesetzt, dass dies der richtige Ansatz ist)

Siehe auch Visual Studio C ++ 2008 / 2010 - Pause auf Float NaN

    
Arafangion 16.12.2010 02:02
quelle