-
1. Data: 2020-04-14 09:49:50
Temat: najprosze możliwe pytanie z C++
Od: RM <r...@w...pl>
Uczę się C++. Mam taki kod:
#include <string>
...
std::string errors;
...
errors += "Invalid usage. Result directory must be different from
application directory.\n";
Nie rozumiem dlaczego błąd:
żaden operator "+=" nie pasuje do tych argumentów operacji -- typy
operandów: const std::__cxx11::string += const char [70]
Tym bardziej że w innym miejscu podobne przypisanie += się kompiluje.
-
2. Data: 2020-04-14 09:59:41
Temat: Re: najprosze możliwe pytanie z C++
Od: Emru <e...@g...com>
W dniu Tue, 14 Apr 2020 09:49:50 +0200, użytkownik RM napisał:
> żaden operator "+=" nie pasuje do tych argumentów operacji -- typy
> operandów: const std::__cxx11::string += const char [70]
spróbuj może "Invalid usage..." przypisać najpierw do jakiegoś stringa
std::string tmp = "Invalid usage. Result directory must be different from
application directory.\n";
-
3. Data: 2020-04-14 10:11:09
Temat: Re: najprosze możliwe pytanie z C++
Od: RM <r...@w...pl>
W dniu 14.04.2020 o 09:59, Emru pisze:
> W dniu Tue, 14 Apr 2020 09:49:50 +0200, użytkownik RM napisał:
>
>> żaden operator "+=" nie pasuje do tych argumentów operacji -- typy
>> operandów: const std::__cxx11::string += const char [70]
>
> spróbuj może "Invalid usage..." przypisać najpierw do jakiegoś stringa
>
> std::string tmp = "Invalid usage. Result directory must be different from
> application directory.\n";
>
src/obfuscator.cpp:258:19: error: passing 'const string {aka const
std::__cxx11::basic_string<char>}' as 'this' argument discards
qualifiers [-fpermissive]
errors += tmp;
-
4. Data: 2020-04-14 10:21:01
Temat: Re: najprosze możliwe pytanie z C++
Od: Emru <e...@g...com>
http://www.cplusplus.com/reference/string/string/app
end/
http://www.cplusplus.com/reference/string/string/ope
rator+=/
z jakiego kompilatora korzystasz?
-
5. Data: 2020-04-14 10:30:26
Temat: Re: najprosze możliwe pytanie z C++
Od: g...@g...com
W dniu wtorek, 14 kwietnia 2020 09:49:53 UTC+2 użytkownik RM napisał:
> Uczę się C++. Mam taki kod:
>
> #include <string>
> ...
> std::string errors;
> ...
> errors += "Invalid usage. Result directory must be different from
> application directory.\n";
>
> Nie rozumiem dlaczego błąd:
> żaden operator "+=" nie pasuje do tych argumentów operacji -- typy
> operandów: const std::__cxx11::string += const char [70]
>
> Tym bardziej że w innym miejscu podobne przypisanie += się kompiluje.
Wklej może cały kod na jakiś gist albo pastebin, bo tak to się nie da nic powiedzieć.
-
6. Data: 2020-04-14 10:30:39
Temat: Re: najprosze możliwe pytanie z C++
Od: RM <r...@w...pl>
W dniu 14.04.2020 o 09:59, Emru pisze:
> W dniu Tue, 14 Apr 2020 09:49:50 +0200, użytkownik RM napisał:
>
>> żaden operator "+=" nie pasuje do tych argumentów operacji -- typy
>> operandów: const std::__cxx11::string += const char [70]
>
> spróbuj może "Invalid usage..." przypisać najpierw do jakiegoś stringa
>
> std::string tmp = "Invalid usage. Result directory must be different from
> application directory.\n";
>
Znalazłem i poprawiłem błąd. errors było polem w klasie obfuscator a
całość była robiona w metodzie
obfuscator::make_result_dir() const
i właśnie to const przeszkadzało.
-
7. Data: 2020-04-14 14:21:51
Temat: Re: najprosze możliwe pytanie z C++
Od: RM <r...@w...pl>
W dniu 14.04.2020 o 10:30, g...@g...com pisze:
>> Tym bardziej że w innym miejscu podobne przypisanie += się kompiluje.
>
> Wklej może cały kod na jakiś gist albo pastebin, bo tak to się nie da nic
powiedzieć.
>
Znalazłem i poprawiłem błąd. errors było polem w klasie obfuscator a
całość była robiona w metodzie
obfuscator::make_result_dir() const
i właśnie to const przeszkadzało.
-
8. Data: 2020-04-15 16:24:00
Temat: Re: najprosze możliwe pytanie z C++
Od: "M.M." <m...@g...com>
On Tuesday, April 14, 2020 at 10:30:41 AM UTC+2, RM wrote:
> W dniu 14.04.2020 o 09:59, Emru pisze:
> > W dniu Tue, 14 Apr 2020 09:49:50 +0200, użytkownik RM napisał:
> >
> >> żaden operator "+=" nie pasuje do tych argumentów operacji -- typy
> >> operandów: const std::__cxx11::string += const char [70]
> >
> > spróbuj może "Invalid usage..." przypisać najpierw do jakiegoś stringa
> >
> > std::string tmp = "Invalid usage. Result directory must be different from
> > application directory.\n";
> >
> Znalazłem i poprawiłem błąd. errors było polem w klasie obfuscator a
> całość była robiona w metodzie
> obfuscator::make_result_dir() const
> i właśnie to const przeszkadzało.
Nie rozumiem.
U mnie nie ma problemu:
[[[[[[
#:~/test_str$ cat > main.cpp
#include <string>
#include <iostream>
int main() {
std::string str;
str += "test\n";
std::cout << str;
return 0;
}
#:~/test_str$ g++ main.cpp -o test_str
#:~/test_str$ ls -la
razem 28
drwxr-xr-x 2 m m 4096 kwi 15 16:21 .
drwxr-xr-x 22 m m 4096 kwi 15 16:19 ..
-rw-r--r-- 1 m m 132 kwi 15 16:21 main.cpp
-rwxr-xr-x 1 m m 13536 kwi 15 16:21 test_str
#:~/test_str$ ./test_str
test
]]]]]
Pozdrawiam
-
9. Data: 2020-04-15 19:57:05
Temat: Re: najprosze możliwe pytanie z C++
Od: RM <r...@w...pl>
W dniu 15.04.2020 o 16:24, M.M. pisze:
>> Znalazłem i poprawiłem błąd. errors było polem w klasie obfuscator a
>> całość była robiona w metodzie
>> obfuscator::make_result_dir() const
>> i właśnie to const przeszkadzało.
>
> Nie rozumiem.
Zmienna errors (pole klasy obfuscator) nie może być zmodyfikowana
wewnątrz metody const klasy obfuscator.
-
10. Data: 2020-04-17 19:09:07
Temat: Re: najprosze możliwe pytanie z C++
Od: "M.M." <m...@g...com>
On Wednesday, April 15, 2020 at 7:57:06 PM UTC+2, RM wrote:
> W dniu 15.04.2020 o 16:24, M.M. pisze:
> >> Znalazłem i poprawiłem błąd. errors było polem w klasie obfuscator a
> >> całość była robiona w metodzie
> >> obfuscator::make_result_dir() const
> >> i właśnie to const przeszkadzało.
> >
> > Nie rozumiem.
>
> Zmienna errors (pole klasy obfuscator) nie może być zmodyfikowana
> wewnątrz metody const klasy obfuscator.
Dlaczego u mnie działa?
Pozdrawiam