-
1. Data: 2019-01-12 11:46:11
Temat: Stroustrup o C++
Od: g...@g...com
http://www.stroustrup.com/P0977-remember-the-vasa.pd
f
-
2. Data: 2019-01-12 17:52:03
Temat: Re: Stroustrup o C++
Od: AK <n...@n...net>
On 2019-01-12 11:46, g...@g...com wrote:
> http://www.stroustrup.com/P0977-remember-the-vasa.pd
f
Prozne zale (o min 10 lat za pozno...).
PS:
Tymczasem n/w smaczki w C/C++ wciaz maja sie dobrze:
int main()
{
int x = 8;
int y = sizeof(x++);
// no wiec ile w tym miejscu wynosi sobie x ?
}
AK
-
3. Data: 2019-01-12 19:37:21
Temat: Re: Stroustrup o C++
Od: s...@g...com
x == 9; y == 4;
Co w tym tajemniczego?!?
-
4. Data: 2019-01-12 20:48:59
Temat: Re: Stroustrup o C++
Od: Wojciech Muła <w...@g...com>
On Saturday, January 12, 2019 at 7:37:22 PM UTC+1, s...@g...com wrote:
> x == 9; y == 4;
> Co w tym tajemniczego?!?
No właśnie nie, wyrażenie będące argumentem sizeof nie jest
wyliczane (nie jest w ogóle kompilowane).
Ale nie ma obaw, taki kod nie pojawia się poza usenetem. :)
w.
-
5. Data: 2019-01-13 06:13:20
Temat: Re: Stroustrup o C++
Od: A S <a...@e...pl>
W dniu 2019-01-12 o 20:48, Wojciech Muła pisze:
>
> No właśnie nie, wyrażenie będące argumentem sizeof nie jest
> wyliczane (nie jest w ogóle kompilowane).
>
Skoro nie jest kompilowane, to dlaczego np. tu jest błąd:
int x = 8;
int y = sizeof(x+);
pozdr
--
A S
-
6. Data: 2019-01-13 12:01:18
Temat: Re: Stroustrup o C++
Od: AK <n...@n...net>
On 2019-01-12 20:48, Wojciech Muła wrote:
> On Saturday, January 12, 2019 at 7:37:22 PM UTC+1, s...@g...com wrote:
>> x == 9; y == 4;
>> Co w tym tajemniczego?!?
>
> No właśnie nie, wyrażenie będące argumentem sizeof nie jest
> wyliczane (nie jest w ogóle kompilowane).
No wiec?
Dlaczego parser C/C++ taki cus dopuszcza?
sizeof to zwykly operator (a nie funkca), wiec nie ma
przeszkod aby (nawet w gramatyce) taka restrykce zawrzec
> Ale nie ma obaw, taki kod nie pojawia się poza usenetem. :)
Tak :)? Zdziwil bys sie.
AK
-
7. Data: 2019-01-13 12:10:23
Temat: Re: Stroustrup o C++
Od: AK <n...@n...net>
On 2019-01-12 20:48, Wojciech Muła wrote:
> On Saturday, January 12, 2019 at 7:37:22 PM UTC+1, s...@g...com wrote:
>> x == 9; y == 4;
>> Co w tym tajemniczego?!?
>
> No właśnie nie, wyrażenie będące argumentem sizeof nie jest
> wyliczane (nie jest w ogóle kompilowane).
Co to znaczy, ze nie jest kompilowane?
Kompilowane jest (parsowanie itd).
Nie jest jedynie _generowany_ kod wyrazenia podlegajacego sizeof.
Zamiast niego (wlacznie z sizeof) jest po prostu na etapie
generacji kodu (a nawet mozna juz na etapie parsingu) wstawiana stała.
PS: Poza tym nie ma tak wesolo (jak to zwykle w C:).
Ja zawsze jest wyjatek (zrzeszta tu logiczny).
Dla tablic dynamicznych (C99) (np. char tab[*]) sizeof jest wyliczany
"on runtime".
AK
-
8. Data: 2019-01-13 12:13:09
Temat: Re: Stroustrup o C++
Od: AK <n...@n...net>
On 2019-01-12 19:37, s...@g...com wrote:
> x == 9; y == 4;
> Co w tym tajemniczego?!?
To se chopie wpierw sprawdz, czy na pewno 9.
PS: No i widac jak dla dloni, ze nawet dla zaprzysieglych
Ayatollahow i wieloletnich developerow C/C++ to wciaz zagadka ;)
AK
-
9. Data: 2019-01-13 13:19:55
Temat: Re: Stroustrup o C++
Od: Wojciech Muła <w...@g...com>
On Sunday, January 13, 2019 at 12:01:20 PM UTC+1, AK wrote:
> On 2019-01-12 20:48, Wojciech Muła wrote:
> > On Saturday, January 12, 2019 at 7:37:22 PM UTC+1, s...@g...com wrote:
> >> x == 9; y == 4;
> >> Co w tym tajemniczego?!?
> >
> > No właśnie nie, wyrażenie będące argumentem sizeof nie jest
> > wyliczane (nie jest w ogóle kompilowane).
>
> No wiec?
> Dlaczego parser C/C++ taki cus dopuszcza?
Przecież gramatyka właśnie dopuszcza, żeby argumentem
operatora było **wyrażenie**. Bez tego nie byłbyś
w stanie w plain C odczytać rozmiaru pola struktury.
A tak piszesz sizeof((Typ*)0->pole) [przykład z praktyki,
nie usenetu].
> sizeof to zwykly operator (a nie funkca), wiec nie ma
> przeszkod aby (nawet w gramatyce) taka restrykce zawrzec
Jak pokazałem, takie ograniczenie byłoby bez sensu.
W C++ odczyt typu wyrażenia umożliwia też decltype, które
jest w wielu kontekstach niezbędne.
w.
-
10. Data: 2019-01-13 17:34:24
Temat: Re: Stroustrup o C++
Od: AK <n...@n...net>
On 2019-01-13 13:19, Wojciech Muła wrote:
> On Sunday, January 13, 2019 at 12:01:20 PM UTC+1, AK wrote:
>> On 2019-01-12 20:48, Wojciech Muła wrote:
>>> On Saturday, January 12, 2019 at 7:37:22 PM UTC+1, s...@g...com wrote:
>>>> x == 9; y == 4;
>>>> Co w tym tajemniczego?!?
>>>
>>> No właśnie nie, wyrażenie będące argumentem sizeof nie jest
>>> wyliczane (nie jest w ogóle kompilowane).
>>
>> No wiec?
>> Dlaczego parser C/C++ taki cus dopuszcza?
>
> Przecież gramatyka właśnie dopuszcza, żeby argumentem
> operatora było **wyrażenie**. Bez tego nie byłbyś
> w stanie w plain C odczytać rozmiaru pola struktury.
E tam.
Przy deklaracji tablic wymagane jest const_expr (ktore jest
podsetem expr) i wszytsko gra.
_Nic_ nie stoi na przeszkodzie, aby dla sizeof tez bylo
subexpr (nie dopuszczajace operatorow pre-in-fixowych).
>> sizeof to zwykly operator (a nie funkca), wiec nie ma
>> przeszkod aby (nawet w gramatyce) taka restrykce zawrzec
>
> Jak pokazałem, takie ograniczenie byłoby bez sensu.
Nie. Jest jak najbardziej sensowne.
Problemem sa zapewne (jak zwykle) zaszlosci.
AK


do góry
Dlaczego nowe mieszkania są coraz mniejsze? Dane GUS pokazują prawdziwy powód