我试图将可变数量的流传递给接受initializer_list的函数,但似乎不起作用,并从initializer_list结构中抛出所有可能的错误,以及有关我的函数与一组ofstreams不能匹配任何已定义的函数。流的初始化列表(C++ 11)
实际上是否可以在initializer_list中传递ofstreams的引用?
TEST.CPP
#include "extension.h"
ofstream outputFile, outputFile2;
int main(void) {
outputFile.open(("data_1.txt");
outputFile2.open("data_2.txt");
writeSomething({outputFile, outputFile2});
outputFile.close();
outputFile2.close();
}
extension.h
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <iostream>
#include <fstream>
#include <unistd.h>
#include <string.h>
#include <initializer_list>
using namespace std;
void writeSomething(initializer_list<ofstream&> args);
extension.cpp
#include "extension.h"
void writeSomething(initializer_list<ofstream&> args) {
for (auto f : args) {
f << "hello" << endl;
}
}
你可以发布你的代码? – SubSevn
fstreams不可复制,并且initializer_lists只允许您复制其内容。所以无论它是否有效取决于你如何填充initializer_list以及函数用它做什么。 IOW,请发布[SSCCE](http://sscce.org) – Praetorian
发布我的代码.. – mercurial