コールバックベースのCAPIを備えたC++ライブラリがあります。コールバックタイプは次のようになります。
typedef struct {...} Result;
typedef void (*callback) (const Result* result, void* userData);
ユーザーはこのようなコールバックを登録し、任意のデータへのポインターを設定でき、ライブラリはそのポインターをコールバックを介して返します。
ここでの私の主な関心事は、厳密なエイリアシングルールに違反しているかどうかです。userDataのタイプをchar*に変更する必要がありますか?