std::complex<float>
のバイナリファイルを読み込もうとしています。私は次のコードを、as suggested in this SO answer試してみました:istreambuf_iteratorから構築したときにベクトルサイズを取得できません
#include <complex>
#include <iostream>
#include <iterator>
#include <fstream>
#include <string>
#include <vector>
void readRawFile(const std::string inputFile){
std::ifstream input(inputFile, std::ios::binary);
std::vector<std::complex<float>> auxBuffer(std::istreambuf_iterator<std::complex<float>>(input), std::istreambuf_iterator<std::complex<float>>());
std::cout << "Number of raw samples read: " << auxBuffer.size();
}
int main(){
readRawFile("myRawFile.raw");
return 0;
}
をそして、私は、次のコンパイルエラーを取得:
In function 'void readRawFile(std::string)': 12:59: error: request for member 'size' in 'auxBuffer', which is of non-class type 'std::vector<std::complex<float> >(std::istreambuf_iterator<std::complex<float> >, std::istreambuf_iterator<std::complex<float> > (*)())'
を私が作成したベクトルの大きさのメソッドにアクセスすることができない理由を私は理解していませんコンパイルエラーなし。私はベクトルがどのように作成されているかと関係があると思いますが、代わりにエラーを出さないということは私には奇妙に思えます。
これについての説明はありますか?
ほとんどのVexing Parse? @WiinZTim。 – WhiZTiM