次のパラメーターを渡す必要があるメソッドを作成したサードパーティ ライブラリを利用するプロジェクトがあります: ベクターに項目を柔軟に生成できるconst std::vector< const Image *>
を作成しようとすると、この型をメソッドに渡すことができませんでした。std::vector< Image * >
私はVC++ 2010が引数の型を介して意図に応じてメソッドを表示すると仮定しましたが、それを渡すためにそのパラメータの型宣言が必要なようです。
const Image *SRImages1 = &SRImages[0];
const Image *SRImages2 = &SRImages[1];
const std::vector< const Image *> SRImageVector(&SRImages1, &SRImages2);
tungsten::vision::SuperResolution::ResultEnum r = SR.enhance( &resultImage, SRImageVector, referenceImageIndex, referenceImageROI, interlaced, asynchronous, listener);
もちろん、これは非常に制限的であり、push_back 演算子を使用してアイテムを動的にベクターに生成できるようにしたいと考えています。
MS VC++ がこれを必要とするのはなぜですか? また、これらの制限内で操作可能なベクトルを作成するにはどうすればよいですか?
編集: OPのコメントからコピー:
.h ファイルの署名は次のとおりです。
ResultEnum enhance( Image *result,
const std::vector<const Image*> &images,
unsigned int referenceImageIndex,
Rectangle referenceImageROI,
bool interlaced,
bool asynchronous,
SuperResolutionListener *listener );