Witam.
Mam teraz pewien problem, mianowicie:
for(int i=100; i>-0, !(strcmp(const_cast<const char>(_DrivesList[i]), ' ')); --i)
std::cout<<"_DrivesList: "<<_DrivesList[i]<<"\n";
(póki co nie sprawdzałem czy to działa, ponieważ mam problem z tym rzutowaniem)
Dlaczego const_cast może przyjąć tylko (const) wksaźnik? Mogę uczynić _DrivesList const, ale już któryś raz uciekam od rozwiązania problemu z const_cast więc zadaje to pytanie. Nie wiem czy jest jakieś inne rozwiązanie... lambda również mi nic nie dała, choć pewnie coś źle napisałem:
for(int i=100; i>-0, !(strcmp([](char ch)->const char*{
const char* retval = &ch;
return retval;
}(_DrivesList[i]), ' '); --i)
std::cout<<"_DrivesList: "<<_DrivesList[i]<<"\n";
Tutaj błędy po przypadku z lambdą:
main.cpp: In function 'std::__cxx11::string GetMingwPathFromUser()':
main.cpp:55:31: error: invalid conversion from 'char' to 'const char*' [-fpermis
sive]
}(_DrivesList[i]), ' '); --i)
^
In file included from D:/mingw-w64/i686-7.3.0-posix-dwarf-rt_v5-rev0/mingw32/i68
6-w64-mingw32/include/guiddef.h:149:0,
from D:/mingw-w64/i686-7.3.0-posix-dwarf-rt_v5-rev0/mingw32/i68
6-w64-mingw32/include/winnt.h:635,
from D:/mingw-w64/i686-7.3.0-posix-dwarf-rt_v5-rev0/mingw32/i68
6-w64-mingw32/include/minwindef.h:163,
from D:/mingw-w64/i686-7.3.0-posix-dwarf-rt_v5-rev0/mingw32/i68
6-w64-mingw32/include/windef.h:8,
from D:/mingw-w64/i686-7.3.0-posix-dwarf-rt_v5-rev0/mingw32/i68
6-w64-mingw32/include/windows.h:69,
from main.cpp:1:
D:/mingw-w64/i686-7.3.0-posix-dwarf-rt_v5-rev0/mingw32/i686-w64-mingw32/include/
string.h:63:15: note: initializing argument 2 of 'int strcmp(const char*, cons
t char*)'
int __cdecl strcmp(const char *_Str1,const char *_Str2);
^~~~~~
Z góry dziękuję za pomoc.
Pozdrawiam.