ダミーリストだけを返すように単純化した単純な関数があります(論理エラーではないことを確認するため)
vector<AttrValue>* QueryEvaluator::getCandidateList(...) {
...
values.clear();
values.push_back(2);
values.push_back(3);
cout << "values is of size " << values.size() << endl;
return &values;
}
次に、cppunit テストで:
vector<AttrValue>* candidateList0 = evaluator->getCandidateList(cl, 0);
cout << candidateList0->size() << endl;
しかし、問題はsize()
、テストでは、cout
メッセージが正しいサイズ 2 を出力しているにもかかわらず、常に 0 であることです。何が間違っているのでしょうか?
簡単なプログラムを試してみましたが、問題ないようです...
#include <iostream>
#include <vector>
using namespace std;
vector<int>* test() {
vector<int> vec { 2, 3, 6, 1, 2, 3 };
return &vec;
}
int main() {
cout << test()->size() << endl;
return 0;
}