クラスをスタック上で強制的にインスタンス化する方法、または少なくともC ++でグローバルになるのを防ぐ方法はありますか?
コンストラクターが事前の初期化を必要とするCAPIを呼び出すため、グローバルインスタンス化を防ぎたいです。AFAIKには、グローバルオブジェクトの構築順序を制御する方法はありません。
編集:アプリケーションは、動的メモリ割り当ても禁止されている組み込みデバイスを対象としています。ユーザーがクラスをインスタンス化するための唯一の可能な解決策は、スタック上にあるか、配置の新しい演算子を使用することです。
Edit2:私のクラスは、他の外部ライブラリ(C APIの元)に依存するライブラリの一部です。これらのライブラリを変更することはできず、最終的なアプリケーションでライブラリを初期化する方法を制御することもできません。そのため、クラスの使用方法を制限する方法を探しています。