我試圖將可變數量的流傳遞給接受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