Обычно я не кодирую С++, но мой странный друг-компаньон из-за меня устал смотреть на мои замечательные программы FORTRAN и бросил вызов мне переписать один из них на С++, так как ему больше нравятся мои коды на С++. (Мы держим здесь деньги). Точные термины - это то, что их нужно компилировать в современном компиляторе С++. Может быть, он ненавидит хороший conio.h - я не знаю.
Теперь я понимаю, что на С++ есть отличные способы написания, но я собираюсь получить личную победу, пытаясь сделать мою версию на С++ максимально возможной для FORTRAN-esque. Для бонусных очков это может сэкономить время и усилия, когда я конвертирую код.
SO! Это приводит меня к следующим связанным запросам:
На переходах:
- Как вы работаете с goto?
- Каковы ограничения на gotos в С++?
- Любые проблемы с областью? (Я постараюсь максимально расширить сферу действия, но вы никогда не знаете.)
- Если я использую расширение GCC для перехода в массив указателей void, возникают ли какие-либо новые проблемы в отношении поведения undefined и т.д.?
В longjmp:
- Как вы можете безопасно использовать longjmp?
- Каковы ограничения на longjmps в С++?
- Что он делает с областью видимости?
- Есть ли какие-то конкретные моменты, когда похоже, что longjmp должен быть безопасным, но на самом деле это не значит, что я должен следить за этим?
- Как бы я смоделировал вычисленный goto с longjmp?
- Есть ли какая-то осязаемая польза для использования longjmp over goto, если у меня есть только одна функция в моей программе?
В настоящее время моя главная задача заключается в том, чтобы сделать расчетную работу goto для этого. Похоже, что я, вероятно, буду использовать longjmp для этой работы, потому что массив указателей void не является частью С++, но специальное расширение GCC.