- list<FileTarget *> files;
- for(list<Target *>::const_iterator i=sources.begin(); i!=sources.end(); ++i)
- files.push_back(&dynamic_cast<FileTarget &>(**i));
+ if(sources.empty())
+ throw invalid_argument("DataTool::create_target");
+ vector<FileTarget *> files;
+ files.reserve(sources.size());
+ for(Target *t: sources)
+ files.push_back(&dynamic_cast<FileTarget &>(*t));