using std::cerr;
using std::endl;
-using std::shared_ptr;
using std::vector;
-typedef vector<shared_ptr<TagLib::ByteVector>> ByteVectorSet;
-
static bool diag = true;
static bool force_write = false;
static bool strip_v1 = true;
+template <class T>
static bool
-ByteVectorSet_has(const ByteVectorSet &set,
- const TagLib::ByteVector &target)
+vector_has(const vector<T> &vector, const T &target)
{
- for (const auto vector : set) {
- if (*vector == target) {
+ for (const auto &element : vector) {
+ if (element == target) {
return true;
}
}
static bool
delete_id3v2_frames(TagLib::MPEG::File &file,
- const ByteVectorSet &delete_frame_ids)
+ const vector<TagLib::ByteVector> &delete_frame_ids)
{
TagLib::ID3v2::Tag *tag = file.ID3v2Tag();
// Build a list of frames to delete in delete_frames.
if (diag) {
cerr << frameid;
}
- if (ByteVectorSet_has(delete_frame_ids, frameid)) {
+ if (vector_has(delete_frame_ids, frameid)) {
cerr << " deleted" << endl;
delete_frames.push_back(frame);
continue;
static void
strip_tags(TagLib::MPEG::File &file,
- const ByteVectorSet &delete_frames,
+ const vector<TagLib::ByteVector> &delete_frames,
char *fn)
{
bool changed = false;
int
main(int argc, char **argv)
{
- ByteVectorSet delete_frames;
+ vector<TagLib::ByteVector> delete_frames;
int c;
while ((c = getopt(argc, argv, "d:")) != -1) {
switch (c) {
case 'd': {
- shared_ptr<TagLib::ByteVector> bv(new TagLib::ByteVector(optarg));
- delete_frames.push_back(bv);
+ delete_frames.emplace_back(optarg);
} break;
default:
// getopt printed an error.