当我尝试执行这行代码时,我收到了这个奇怪的错误代码。
cType += file_size(is_directory( d->status()));
以下是导致错误的代码的一部分。
void scan(string switches, path const& f, unsigned k = 0)
{
// Declare file types
long long cppType = 0, cType = 0,
hType = 0, hppType = 0,
hxxType = 0, javaType = 0,
totalClassType = 0, aviType = 0,
mkvType = 0, mpegType = 0,
mp4Type = 0, mp3Type = 0;
int cpp = 0, c = 0, h = 0, hpp = 0, hxx = 0, java = 0,
totalClass = 0, avi = 0, mkv = 0, mpeg = 0, mp4 = 0, mp3 = 0;
int totalBytes = 0;
string indent(k, '\t');
directory_iterator temp;
directory_iterator d(f); //f = the first file in folder to be processed
directory_iterator e; // signals end of folder
bool isReverse = false;
bool isRecursive = false;
path pth;
pth = d->path();
for (unsigned check = 0; check < switches.size(); ++check)
{
if (switches[check] == 'r')
{
isRecursive = true;
}
else if (switches[check] == 'R')
{
isReverse = true;
}
}
for (unsigned int i = 0; i < switches.size(); ++i)
{
if (switches[i] == 'c')
//OPTION c: Locate c++ files - extension(s): .c,. cpp, .h, .hpp, .hxx
{
if (pth.extension() == ".c")
{
c++;
cType += file_size(is_directory(d->status()));
}
非常感谢任何帮助!
答案 0 :(得分:3)
is_directory()返回bool
,而不是Path
,这是file_size()作为参数。
你得到的错误可能意味着file_size()是一个宏,这意味着:
file_size(is_directory( d->status()))
正在某些时候扩展到:
is_directory( d->status())._Ptr
无法使用,因为.
运算符无法应用于bool
值。