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