iPhone と iPad で使用するために C++ プロジェクトを iOS に移植しています。このプロジェクトは、Boost.Coroutine ライブラリを広範囲に使用します。Boost.Coroutine には、iPhone の ARMv6/ARMv7 命令セットの実装がありません。
iOS で実行できる他のコルーチン ライブラリはありますか?
そうでない場合、ARM でコルーチンの動作を記述することは可能ですか? これを行うためのいくつかの潜在的な方法を見ることができます:
- アセンブリ命令を直接記述して、スタック操作を実行します。私はアセンブリにあまり精通しておらず、スタックをコピーして貼り付けたり、スタック ポインタを手動で移動したりするのに必要な命令が ARM アーキテクチャに含まれていないのではないかと心配しています。
- pthread や Win32 ファイバーに似たものを使用してコルーチンを記述します。iOSで使用できるこのようなものがあるかどうかはわかりません。
- スレッドの上に、コルーチン (おそらく Boost.Coroutine 自体も) を実装します。これはうまくいく可能性が最も高いようですが、確実にパフォーマンス上の欠点があります。
注: Unity は、iOS 上の C# でコルーチンをサポートしています。これが典型的なコルーチン動作の小さなサブセットに限定されているかどうかはわかりません。そうでない場合、これは Unity が解決策を持っているということですか?