Я ценю любую помощь в этом вопросе, я немного гуглил и искал, и мне не хватает того, что происходит или как это исправить.
У меня есть код, ранее скомпилированный в командной строке с помощью g++, для которого я создал файл make, и я тестирую его с помощью компилятора clang. У меня до сих пор не было с этим проблем..
Вот ошибка
input.cpp:241:17: error: invalid operands to binary expression ('ifstream' (aka 'basic_ifstream<char>')
and 'long')
assert(casFile!=NULL);
~~~~~~~^ ~~~~
Раздел кода, из которого он исходит,
char outfile[32],casfile[32];
ifstream outFile, casFile;
....other stuff unrelated...
casFile.open(casfile);
assert(casFile!=NULL);
В верхней части файла
#include "input.h"
#include <stdlib.h>
#include <stdio.h>
#include <cmath>
#include <vector>
#include <algorithm>
#include <assert.h>
#include <iostream>
#include <fstream>
using namespace std;
Я немного сбит с толку, потому что я прекрасно использовал это, пока не переключился на clang. Есть ли флаг, который мне не хватает?
-std=c++11 -stdlib=libc++ -g -Wall
Думаю, я включил всю необходимую информацию. Спасибо за помощь!!
void*
, но не в C++11. Вместо этого было разрешено преобразование вbool
, поэтомуassert(casFile);
делает то, что вы хотите, поскольку хороший поток преобразуется вtrue
. - person John D   schedule 16.11.2016