-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.P
OSTED!not-for-mail
From: Roman Tyczka <n...@b...no>
Newsgroups: pl.comp.programming
Subject: Re: Niezmienniki pętli
Date: Mon, 19 Nov 2018 09:22:44 +0100
Organization: ATMAN - ATM S.A.
Lines: 48
Sender: r...@t...no.found
Message-ID: <1...@t...com>
References: <8...@g...com>
<7...@g...com>
<d...@g...com>
<psp6q7$97o$1@node2.news.atman.pl>
<6...@g...com>
<pss4d0$14n$1@node2.news.atman.pl>
<3...@g...com>
NNTP-Posting-Host: ip-94-75-90-137.wave.com.pl
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
X-Trace: node1.news.atman.pl 1542615764 11855 94.75.90.137 (19 Nov 2018 08:22:44 GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Mon, 19 Nov 2018 08:22:44 +0000 (UTC)
User-Agent: 40tude_Dialog/2.0.15.84
Xref: news-archive.icm.edu.pl pl.comp.programming:212930
[ ukryj nagłówki ]On Sun, 18 Nov 2018 23:14:44 -0800 (PST), Maciej Sobczak wrote:
> Wystarczy rozszerzyć składnię asserta. W tej chwili assert musi dostać jedno
wyrażenie, ale można by go rozszerzyć tak, żeby akceptował dowolne fragmenty kodu. W
niektórych językach to się robi o tyle łatwiejsze, że wszystko jest albo może być
wyrażeniem, również pętla While czy cokolwiek innego - wtedy do takiego asserta można
wsadzić dowolny fragment kodu, nawet z własnymi definicjami zmiennych wykorzystanych
w środku. Ale w C++ chyba niewiele trzeba, żeby to osiągnąć, np. z taką składnią:
>
> assert(dowolnyfragmentkodu, wynik_bool);
>
> I użyć tego tak:
>
> assert(
> int i; // albo inne definicje
> int j = x; // x jest na zewnątrz, ale widać go tutaj
>
> while (orzemy_jak_możemy)
> {
> // obliczenia, wywołania funkcji, itd.
> ...
> },
>
> x > 0 && i < 10 // jakiś ostateczny warunek
> );
>
> I wtedy assert, tylko w trybie debug, wykonuje ten kod a na końcu sprawdza warunek
logiczny z drugiego swojego argumentu. W trybie release nic nie robi.
>
> Kto zaproponuje definicję makra assert o takich zdolnościach?
Makra nie zaproponuję, ale wrzucę ciekawostkę.
W języku Solidity, używanym do smart kontraktów w sieci Ethereum
(kryptowaluty) stosuje się coś co się nazywa modifier, przykładowo dopisuje
się w klasie modifier isOwner, który sprawdza czy kontrakt wywołał jego
właściciel i tenże modifier dopisuje się do pozostałych metod, które mają
go sprawdzać przed wywołaniem, w przykładzie robi to metoda getData():
[...]
modifier isOwner {
require(msg.sender == owner);
}
function getData() public isOwner {
return data
}
[...]
ps. require to odpowiednik asserta
--
pozdrawiam
Roman Tyczka
Następne wpisy z tego wątku
- 19.11.18 10:37 Queequeg
- 19.11.18 10:45 Queequeg
- 19.11.18 17:15 g...@g...com
- 19.11.18 19:45 g...@g...com
- 19.11.18 19:49 g...@g...com
- 19.11.18 21:18 s...@g...com
- 19.11.18 21:44 Queequeg
- 19.11.18 22:10 fir
- 19.11.18 22:16 fir
- 19.11.18 23:12 g...@g...com
- 20.11.18 00:00 AK
- 20.11.18 00:20 AK
- 20.11.18 05:37 s...@g...com
- 20.11.18 10:35 Queequeg
- 20.11.18 10:43 Queequeg
Najnowsze wątki z tej grupy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
Najnowsze wątki
- 2025-02-14 Warszawa => International Freight Forwarder <=
- 2025-02-14 Olsztyn => Sales Specialist <=
- 2025-02-14 Wrocław => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-02-14 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo
- 2025-02-14 Dęblin => JavaScript / Node / Fullstack Developer <=
- 2025-02-14 Żerniki => Dyspozytor Międzynarodowy <=
- 2025-02-14 Kraków => Technical Team Leader (Clojure, Java) <=
- 2025-02-14 Ściemniacze na parkingach
- 2025-02-13 kilka pytań o klimę
- 2025-02-13 genialny pomysł
- 2025-02-12 diesel z otwartą komorą
- 2025-02-14 60 mA dużo czy spoko?
- 2025-02-13 Jaka moc wi-fi ?
- 2025-02-12 Drabina rozsuwana
- 2025-02-13 Dęblin => Node.js / Fullstack Developer <=