Ηρεμία και η τάξη, η γενική διανοητική ισορροπία είναι οι επιθυμητές καταστάσεις κάθε ατόμου. Η ζωή μας περνά κυρίως σε μια κούνια - από αρνητικά συναισθήματα στην ευφορία και πίσω.

Πώς να βρείτε και να διατηρήσετε το σημείο ισορροπίας έτσι ώστε ο κόσμος να γίνει αντιληπτός θετικά, ήρεμα, τίποτα ενοχλημένο, δεν τρομάζει, και η παρούσα στιγμή έφερε έμπνευση και χαρά; Είναι δυνατόν να βρεθεί μια μεγάλη ειλικρινή ισορροπία; Ναι, ίσως! Επιπλέον, η πραγματική ελευθερία έρχεται με ηρεμία και απλή ευτυχία για να ζήσει.

Αυτοί είναι απλούς κανόνες και λειτουργούν αυστηρά. Απλά πρέπει να σταματήσετε να σκέφτεστε πώς να αλλάξετε και να αρχίσετε να τις εφαρμόσετε.

1. Σταματήστε να ρωτήσετε: "Γιατί μου συνέβη;" Ρωτήστε τον εαυτό σας μια άλλη ερώτηση: "Τι συνέβη υπέροχο; Τι καλό μπορεί να μετατραπεί σε μένα; \u200b\u200b" Καλά έχουν σίγουρα, απλά πρέπει να το δω. Οποιοδήποτε πρόβλημα μπορεί να οδηγήσει σε ένα πραγματικό δώρο. Περισσότερο αν το θεωρείτε ως πιθανότητα και όχι ως τιμωρία ή αδικία.

2. Αναπτύξτε ευγνωμοσύνη. Κάθε βράδυ άφησε τα αποτελέσματα: τι μπορώ να πω "ευχαριστώ" την προηγούμενη μέρα. Εάν η ειρήνη του νου χαθεί - θυμηθείτε τα καλά πράγματα που έχετε, και για το τι μπορείτε να ευχαριστήσετε τη ζωή.

3. Τοποθετήστε το σώμα με άσκηση. Θυμηθείτε ότι ο εγκέφαλος παράγει πιο ενεργά τις "ορμόνες της ευτυχίας" (ενδορφίνες και enkephalins) ακριβώς κατά τη διάρκεια της σωματικής άσκησης. Επομένως, αν έχετε ξεπεράσει τα προβλήματα, το άγχος, την αϋπνία - πηγαίνετε έξω και περπατήστε για αρκετές ώρες. Ένα γρήγορο βήμα ή τρέξιμο θα αποσπαστεί από τις θλιβερές σκέψεις, θα αυξήσουν τον εγκέφαλο με οξυγόνο και θα αυξήσουν το επίπεδο των θετικών ορμονών.

4. Εργαστείτε τη "ελεύθερη στάση" και καταλήξετε σε μια ευτυχισμένη στάση. Το σώμα ξέρει πώς να βοηθήσει μεγάλη όταν πρέπει να επιστρέψετε την ψυχική ισορροπία. Το "θυμάται" το αίσθημα της χαράς αν απλά ισιώσει την πλάτη σας, κάντε τους ώμους σας, θα αναπνεύσει και να χαμογελάσει. Συνειδητά κρατήστε τον εαυτό σας κάποια στιγμή σε μια τέτοια στάση, και θα δείτε ότι οι σκέψεις στο κεφάλι γίνονται πιο ήρεμοι, σίγουροι και χαρούμενοι.

5. Επιστρέψτε τον εαυτό σας στην κατάσταση "εδώ και τώρα". Η εύκολη άσκηση βοηθά να απαλλαγείτε από το συναγερμό: κοιτάξτε γύρω, εστιάστε σε αυτό που βλέπετε. Ξεκινήστε ψυχικά "φωνή" μια εικόνα, εισάγοντας όσες λέξεις "τώρα" και "εδώ". Για παράδειγμα: "Πάω στο δρόμο τώρα, ο ήλιος λάμπει εδώ. Τώρα βλέπω έναν άνθρωπο, φέρει κίτρινα λουλούδια ... ", κλπ. Η ζωή αποτελείται μόνο από τις στιγμές "τώρα", μην το ξεχάσετε.

6. Μην υπερβάλλετε τα προβλήματά σας. Μετά από όλα, αν σας fuck σας κοντά στα μάτια μου, θα αποκτήσει το μέγεθος ενός ελέφαντα! Εάν κάποια εμπειρία σας φαίνεται ανυπέρβλητη, σκεφτείτε, σαν να έχουν περάσει δέκα χρόνια ... Πόσα προβλήματα έχουν ήδη βρεθεί - τα αποφασίσατε όλοι. Επομένως, αυτό το πρόβλημα θα είναι, μην βουτήξετε σε αυτό με το κεφάλι σας!

7. Γέλαστε περισσότερο. Προσπαθήστε να βρείτε κάτι αστείο στην τρέχουσα κατάσταση των πραγμάτων. Δεν λειτουργεί - τότε βρείτε μόνο έναν λόγο για το ειλικριτικό γέλιο. Κοιτάξτε την αστεία ταινία, θυμηθείτε την αστεία θήκη. Η δύναμη του γέλιου είναι απλά καταπληκτική! Η ειλικρινή ισορροπία συχνά επιστρέφεται μετά από μια καλή δόση του χιούμορ.

8. Συγχωρήστε περισσότερα. Οι έρευνες είναι σαν βαριές, κακές μυρωδιές πέτρες που εσείς παντού μαζί σας. Τι ειρηνική ηρεμία μπορεί να είναι με ένα τέτοιο φορτίο; Επομένως, μην κρατάτε το κακό. Οι άνθρωποι είναι μόνο άνθρωποι, δεν μπορούν να είναι τέλειοι και πάντα να φέρουν μόνο καλά. Έτσι συγχωρέστε τους παραβάτες και συγχωρείτε τον εαυτό σας.

10. Συνομιλία περισσότερο. Οποιοσδήποτε πόνος κρυφό εσωτερικό πολλαπλασιάζεται και φέρνει νέα λυπημένα φρούτα. Επομένως, μοιραστείτε τις εμπειρίες σας, συζητήστε τους με τους αγαπημένους σας, αναζητήστε την υποστήριξή τους. Μην ξεχνάτε ότι ένα άτομο δεν προορίζεται για μοναξιά. Η διανοητική ισορροπία μπορεί να βρεθεί μόνο σε στενές σχέσεις - φιλικές, αγαπημένες γεννήσεις.

11. Προσευχήστε και διαλογιστείτε. Μην επιτρέπετε τις κακές κακές σκέψεις να σας ελέγχουν, να σπείρουν τον πανικό, τον πόνο και τον ερεθισμό. Αλλάξτε τα σε σύντομες προσευχές - Προσφυγή στον Θεό ή τον Διαλογισμό - Όχι Σκέψη. Μείνετε η μη διαχειριζόμενη εσωτερική ροή συνομιλίας. Αυτή είναι η βάση ενός είδους και σταθερής ψυχικής κατάστασης.

Όταν φαίνεται ότι το επόμενο επίπεδο μεταβιβάζεται, σίγουρα θα σέρνουν τις σκιές και να κανονίσουν έναν έλεγχο αν η ισορροπία και η παρουσία του Πνεύματος παραμένει κατά τους χορούς τους.

Η αντίδραση στη σκιά κουνάει το εκκρεμές του εγώ και δίνει την αδίστακτη αλήθεια: η ισορροπία τεντώνεται ως προσεκτικό σχοινί και πρόκειται να απειλήσει να ξεπεράσει για να αιχμαλωτίσει το γενναίο στην άβυσσο του παρελθόντος.

Η αληθινή ισορροπία είναι η έλλειψη παρατήρησης με τον εθισμό: η αναζήτηση κάτι είναι λάθος εδώ.

"Τα πάντα, όπως συνήθως," λέει ο εσωτερικός σκέλος, ακόμη και αν οι απειλές τίθενται γύρω από την πανούκλα ή την ακατέργαστη, "ακριβώς αυτοί οι άνθρωποι τραυματίζονται και πρέπει να γνωρίζουν το μονοπάτι τους".

Αλλά αν υπάρχουν άλλες αντιδράσεις, τότε η διαδρομή δεν ταξιδεύει και η ολοκλήρωση της σκηνής είναι ακόμα μπροστά.

- Τι πρέπει να κάνω? - Είστε μόνο στην αρχή του οδικού ταξιδιού.
- Είμαι έτοιμος να νικήσω μέχρι το θάνατο! - περάσατε το ένα τέταρτο του δρόμου.
- Μου αρέσει μια τέτοια περιπέτεια! - Το ήμισυ της διαδρομής έχει ήδη περάσει.
"Πηγαίνετε σε μένα, σας σώζω," τρία τέταρτα του τρόπου που περάσατε. "
- Πώς είμαι ευγνώμων σε σας για αυτό που ακριβώς εσείς! - Μέχρι το τέλος του επιπέδου άφησε 2/10 τρόπους.
- ταξιδιώτης, πού κρατάτε το δρόμο σας και τι θέλετε να επιτύχετε την επιθετικότητα σας; - Έχετε περάσει αυτό το επίπεδο και περάσατε την εξέταση της απειλητικής σκιάς.

Υπάρχουν πολλή αγάπη και πολλή τέχνη στη σκιά. Ως καλός δάσκαλος, παίζει τέλεια στα Τίρανα, θυσία και διασώστη για να ελέγξει την ισορροπία σας. Μετά από όλα, στη γλώσσα των παικτών: η ισορροπία είναι το επίπεδο του Θεού.

© Mark IphRaimov

********

Όροι ηρεμίας

Ετοιμαστείτε να αφήσετε να φύγετε.

Οι άνθρωποι που γεμίζουν το κεφάλι σας, το χειρισμό, τον κατηγορούμενο, το ποτήρι, ατυχές, που σε βράζουν, στερούν συναισθηματική ηρεμία.

Να είναι ίσος.

Η ισότητα στην οποία όλοι είναι υπεύθυνοι για τη ζωή τους και δεν αναμένουν ότι κάποιος θα το κάνει ευτυχισμένο ή να μου πει πώς να ζήσω.

Να είσαι προσεκτικός.

Μην δίνετε σε καταγγελίες και χειραγώγηση. Η σχέση είναι η παρουσία στη ζωή ενός άλλου, όχι η σωτηρία του. Μην συγχέετε με άμεση αίτηση για βοήθεια. Ζητούν - Βοηθήστε όσο είναι δυνατόν για εσάς.

Ετοιμαστείτε να απομακρυνθείτε.

Μην συμμετέχετε στην αποσυναρμολόγηση και τις χρεώσεις. Μην δικαιολογείτε. Εάν κάνετε λάθος - ζητήστε συγγνώμη. Είναι αρκετά. Εάν έχουν υποστεί ζημιά από τις αισθήσεις ενός ατόμου - ρωτήστε τι μπορείτε να κάνετε για να εμποδίσετε την ενοχή; Εάν η απάντηση δεν ακολουθεί, να είστε έτοιμοι να απομακρυνθείτε. Αυτό δεν είναι πλέον για την ενοχή σας, αλλά για τις χρεώσεις του.

Να είσαι σκληρός.

"Θα επαινέσετε - μην χαίρεσαι. Scold - μην λανθασμένα "(c). Δεν μπορείτε να κερδίσετε ή να χάσετε όλη την ώρα. Δεν μπορείτε να μοιραστείτε τα πάντα για να χάσετε και να κερδίσετε. Βρείτε αυτό που έχουν μάθει και ότι το νέο έχει ανακαλύψει στον εαυτό σας, χάρη σε αυτό το γεγονός. Πηγαίνετε με τον δικό σας τρόπο, σταθερό βήμα.

Να περάσει.

Περνάμε από τις συγκρούσεις των άλλων ανθρώπων, το κουτσομπολιό, την κατηγορηματική, την αξιολόγηση, την κακία, την εκδίκηση, το φτερό, τις ετικέτες, το φθόνο. Μην σφίγγετε όλα αυτά, μην υποστηρίζετε, μην σπαταλάτε το χρόνο σας ... Πηγαίνετε γύρω ...

Να είστε έτοιμοι να συμμετάσχετε.

Συνεχίζουμε να γνωρίζουμε τις γλώσσες καινοτομίες του προτύπου C ++ 17. Σε αυτό το άρθρο, θα εξετάσουμε αυτό που θα έλεγα τη συνέχιση της γλώσσας. Εκείνοι. Καμία ολοκαίνουργια, από την άποψη της λειτουργικότητας, δεν θα δούμε τα πράγματα εδώ - μάλλον φέρνοντας το παλιό λειτουργικό σε μια πιο αποδεκτή κατάσταση. Εδώ θα εξετάσουμε: Αυτό που έχει αλλάξει με τη διαδικασία εκτέλεσης μιας υποταγής, το οποίο νέες εγγυήσεις εμφανίστηκαν από την άποψη του αποκλεισμού της προαιρετικής αντιγραφής και που προστέθηκε πρόσφατα στη λάμδα.

Φέρνουμε παραγγελία

Πολλοί C ++ - προγραμματιστές συναντήθηκαν "ενδιαφέροντα" καθήκοντα στα οποία δίνεται κάποιος αμφιλεγόμενος κώδικας: "Τι θα προκύψει;". Ένα από τα κοινά παραδείγματα τέτοιου κώδικα είναι το ακόλουθο παράδειγμα:

Int i \u003d 0; i \u003d i ++ + i ++;

Ένας τέτοιος "έξυπνος" κώδικας βρίσκεται τόσο στο δίκτυο όσο και στις συνεντεύξεις. Σκοπός τέτοιων ζητημάτων είναι να μάθετε πόσο εξοικειωμένοι με τα χαρακτηριστικά της διαδικασίας για την εκτέλεση των εκφράσεων στο C ++.

Τουλάχιστον αυτό είναι ένας δηλωμένος στόχος. Είναι αλήθεια ότι πιστεύω ότι στις περισσότερες περιπτώσεις ένα πρόσωπο που ζητεί τέτοιες ερωτήσεις θέλει ακριβώς να αισθανθεί την υπερηφάνειά του. Γνωρίζοντας ότι θα εξάγει όπως αυτός ο κωδικός είναι εντελώς προαιρετικός, επειδή ένας τέτοιος κωδικός απλά δεν μπορεί να γραφτεί. Και αν δεν μπορείτε να γράψετε, τότε γιατί να ζητήσετε από τον αιτούντα γι 'αυτό; Τέτοιες ερωτήσεις είναι κατάλληλες για το "κάπνισμα", όπου οι γνωστοί προγραμματιστές συζητούν τις συνοριακές δοκιμές. Δεν είναι κατάλληλα για συνεντεύξεις. Σας συνιστούμε να εξοικειωθείτε με τις σκέψεις του Remond Chen σε αυτό το θέμα: "Do Peple γράφουν τον Insane Code με πολλαπλές αλληλεπικαλυπτόμενες παρενέργειες με ένα ευθεία πρόσωπο;"

Αλλά αυτή είναι μια παθολογική περίπτωση, η οποία είναι ορατή στην άοπλη ματιά, και, όπως ανέφερα, ένας κανονικός προγραμματιστής δεν θα γράψει ποτέ. Αλλά υπάρχουν λιγότερο προφανείς περιπτώσεις που οι έμπειροι προγραμματιστές μπορούν να γράψουν. Ας δούμε ένα τέτοιο κομμάτι κώδικα:

Void F2 () (STD :: String S \u003d "Αλλά έχω ακούσει ότι λειτουργεί ακόμα κι αν δεν το πιστεύετε σε αυτό", s.replace (0, 4, "") .ePlace (s.find ("ακόμα" ), 4, "Μόνο"). Deplace (s.find ("don" t "), 6," "); Assert (S \u003d\u003d" Έχω ακούσει ότι λειτουργεί μόνο αν πιστεύετε σε αυτό ");).

Αυτός ο κώδικας παρουσιάζεται στο τελευταίο βιβλίο του Sturestrup "The C ++ Language Countery 4th Edition", στην ενότητα 36.3.6, και με την πρώτη ματιά φαίνεται αρκετά κατάλληλη και σωστή. Αλλά αυτό είναι μόνο με την πρώτη ματιά, δεν υπάρχουν πραγματικά εγγυήσεις ότι ο παραπάνω κώδικας θα αποτελέσει την αναμενόμενη συμβολοσειρά και, κατά συνέπεια, η Assert δεν θα λειτουργήσει.

Όπως βλέπουμε, ακόμη και ο δημιουργός C ++ έκανε ένα λάθος σε ένα τόσο μικρό κομμάτι κώδικα. Τι λέει? Πρώτα απ 'όλα, ότι δεν χρειάζεται να χειριστείτε μια δέσμη κώδικα σε μια έκφραση, στην οποία υπάρχουν πολλά πράγματα από διαφορετικά πράγματα. Η πρώτη έκδοση αυτού του κώδικα, η οποία παρουσιάζεται στην ίδια σελίδα του βιβλίου είναι πολύ πιο εύκολη και καλύτερη:

Void F () (STD :: String S \u003d "Αλλά έχω ακούσει ότι λειτουργεί ακόμα κι αν δεν το πιστεύετε σε αυτό", s.replace (0, 4, ""); s.replace (s.find (" Ακόμη και "), 4," μόνο "), s.replace (s.find (" don "t"), 6, ""); Assert (s \u003d\u003d "Έχω ακούσει ότι λειτουργεί μόνο αν πιστεύετε σε αυτό" );)

Αυτή η επιλογή δεν είναι σωστή μόνο από την άποψη της εκτέλεσης του προγράμματος του προγράμματος, είναι επίσης ευκολότερο να διαβαστεί. Αλλά αυτό δεν είναι το μόνο συμπέρασμα που πρέπει να κάνουμε είναι άλλος, ποιος για εμάς έκαναν ήδη τους συντάκτες της πρότασης P0145R3: με τη σειρά εκτέλεσης των εκφράσεων των εκφράσεων στο C ++ κάτι είναι λάθος.

Παλαιά τάξη

Πριν από τη στραφούμε στην πρόταση και στις αλλαγές στις οποίες οδήγησε η υιοθέτηση του, προτείνω να θυμηθώ τους κανόνες του τρέχοντος. Αυτό θα βοηθήσει στην ανανέωση της μνήμης (και να μάθει κάποιος) γιατί το παρακάτω παράδειγμα είναι φτωχό κωδικό C ++ (καθαρά από την άποψη της γλώσσας, όχι αισθητικής). Έτσι, σε αντίθεση με πολλές άλλες γλώσσες προγραμματισμού, στο C ++, η διαδικασία εκτέλεσης του υποτμήματος στις εκφράσεις δεν καθορίζεται από το πρότυπο και παραμένει στον μεταγλωττιστή της διαρροής. Φυσικά, εξακολουθεί να υπάρχει μια συγκεκριμένη σειρά, αλλά δεν θα περιγράψω όλες τις λεπτές αποχρώσεις εδώ, επειδή Υπάρχουν πολλοί από αυτούς. Είναι σημαντικό να καταλάβουμε ότι, κατά κανόνα, 2 κοστούμια μιας μεγάλης έκφρασης εκτελούνται ανεξάρτητα το ένα από το άλλο μέσα Αβέβαιος Η εντολή (μια μεγάλη εξαίρεση από αυτόν τον κανόνα είναι ένας χειριστής κόμματος ",").

Για παράδειγμα, ας πάρουμε το πρώτο μας παράδειγμα: i \u003d i ++ + i ++; . Σε μια μεγάλη έκφραση υπάρχουν 4 μικρά υποτμήματα: I, I ++, I ++ και I ++ + I ++. Τι εγγυάται το πρότυπο C ++ 14; Εγγυάται (EXPR.ASS) ότι και οι δύο εκφράσεις I ++ θα υπολογίζονται πριν από το ποσό τους υπολογίζεται, καθώς και το γεγονός ότι η έκφραση που θα υπολογιστεί πριν από την εκχώρηση του ποσού. Υπενθυμίζω επίσης ότι η έκφραση I ++ επιστρέφει την παλιά τιμή Ι, και στη συνέχεια αυξάνεται i ανά μονάδα (αυξήσεις). Αυτό, με τη σειρά του, σημαίνει ότι η έκφραση θεωρείται ότι υπολογίζεται όταν λαμβάνεται η παλιά τιμή Ι.

Έτσι, αποδεικνύεται ότι ο μεταγλωττιστής μπορεί να επιλέξει διάφορους τρόπους για τον υπολογισμό της πλήρους έκφρασης: δεν περιορίζεται στο πότε πρέπει να εφαρμοστεί το αποτέλεσμα ++ στο i. Ως αποτέλεσμα, μπορούμε να λάβουμε διαφορετικές αξίες στο i, το οποίο, φυσικά, δεν είναι κατάλληλο οπουδήποτε, επειδή Το πρόγραμμα θα πρέπει να δώσει ένα προβλέψιμο αποτέλεσμα που δεν εξαρτάται από την σύμπτωση του μεταγλωττιστή. Για παράδειγμα, η παραγγελία μπορεί να είναι έτσι:

    Υπολογίστε το πρώτο i, είναι ίσο με το 0.

    Υπολογίστε το δεύτερο i, είναι ίσο με το 0.

    Καταγράψτε το αποτέλεσμα της δεύτερης προσαύξησης, λαμβάνουμε i \u003d\u003d 1.

    Καταγράψτε το αποτέλεσμα της πρώτης αύξησης, λαμβάνουμε i \u003d\u003d 2.

    Υπολογίστε το i στα αριστερά του σημείου της ισότητας.

    Υπολογίστε το ποσό: 0 + 0 \u003d\u003d 0.

    Καταγράψτε το αποτέλεσμα του ποσού στο i.

    Επιστρέψτε το αποτέλεσμα της πλήρους έκφρασης, δηλ. Εγώ, που είναι 0.

Μπορείτε να εκτελέσετε τα παραπάνω βήματα με οποιαδήποτε σειρά που δεν παραβιάζει τις εγγυήσεις που παρέχονται από το πρότυπο και ως αποτέλεσμα θα ληφθούν διαφορετικές απαντήσεις.

Με την ευκαιρία, μπορείτε να εξετάσετε την επιλογή και απλούστερη: i \u003d ++ i + i ++; . Εδώ εμφανίζεται αμέσως ότι το αποτέλεσμα θα είναι διαφορετικό ανάλογα με το τι θα υπολογιστεί πρώτα ++ i ή i ++, επειδή Στην πρώτη έκφραση, οι παρενέργειες (αύξηση Ι ανά μονάδα) συμβαίνουν πριν από τον υπολογισμό του.

Αν και η δεύτερη επιλογή είναι πιο ορατή, και οι δύο δίνουν την έξοδο είναι λεγόμενη Αβέβαιη συμπεριφορά (NP, αγγλική απροσδιόριστη συμπεριφορά). Όλοι οι προγραμματιστές Matte C ++ είναι εξοικειωμένοι με αυτόν τον όρο, αλλά είναι απίθανο ότι πολλοί γνωρίζουν όλες τις γλώσσες C ++, όπου η συμπεριφορά αυτή μπορεί να εκδηλωθεί. Αυτό είναι ένα ευρύ και αρκετά ενδιαφέρον θέμα που μπορείτε να ενώσετε με ένα άρθρο, οπότε δεν θα σταματήσω σε αυτό. Στην πραγματικότητα, μια τέτοια λεπτομερής ανάλυση της έκφρασης δεν ήταν απαραίτητη, διότι Σύμφωνα με το πρότυπο (Intro.execution / P15), η έκφρασή μας είναι Το NP οφείλεται στο γεγονός ότι σε μία έκφραση υπάρχουν δύο διατάξεις που τροποποιούν το ίδιο αντικείμενο κλιματισμού και δεν ορίζεται η διαδικασία για αλλαγές. Γιατί έδωσα αυτή την ανάλυση; Προσπάθησα να δείξω γιατί Η NP εκδηλώνεται με βάση τους ισχύοντες περιορισμούς για τις εκφράσεις, δηλ. Ο στόχος ήταν να δείξουμε ότι με τους ισχύοντες κανόνες του προτύπου δεν υπάρχει άλλη διέξοδος, πώς να κάνει τα χέρια.

Τώρα ας γυρίσουμε στο δεύτερο παράδειγμα μας και θα το καταλάβουμε ότι δεν είναι τόσο μαζί του. Προκειμένου να απλοποιηθεί η κατανόηση, θα μειώσω αυτό το παράδειγμα σε μια τέτοια έκφραση: s.replace (s.find ("ακόμα"), 4, "μόνο"). Τι έχουμε εδώ? Υπάρχει ένα αντικείμενο S, υπάρχει μια κλήση προς το STD :: String :: String :: Αντικατάσταση λειτουργίας, άλλη STD :: String :: Βρείτε τη λειτουργία, καθώς και τα επιχειρήματα για αυτές τις λειτουργίες. Ποιες εγγυήσεις μας δίνουν ένα πρότυπο; Το πρότυπο εξασφαλίζει ότι τα επιχειρήματα λειτουργίας θα υπολογίζονται πριν από τη λήψη της λειτουργίας. Εξασφαλίζει επίσης ότι το αντικείμενο για το οποίο εκτελείται η λειτουργία πρέπει να υπολογίζεται πριν από την προκληθείσα λειτουργία. Όλα αυτά είναι κατανοητά και λογικά. Είναι αλήθεια ότι δεν εγγυάται άλλες εγγυήσεις: δεν υπάρχει καμία εγγύηση ότι το S θα υπολογιστεί πριν από την προϋπόθεση ότι τα επιχειρήματα της λειτουργίας αντικατάστασης θα υπολογιστούν και δεν υπάρχουν εγγυήσεις σχετικά με τη διαδικασία υπολογισμού αυτών των περισσότερων επιχειρημάτων. Ως εκ τούτου, μπορούμε να πάρουμε μια τέτοια εντολή υπολογισμού: s.find ("ακόμα και"), "μόνο", 4, s, s.replace (...). Είτε οποιοδήποτε άλλο, το οποίο δεν παραβιάζει προηγουμένως υποδηλωμένες εγγυήσεις.

Από το παραπάνω κείμενο, πρέπει να απογυμνώσετε 2 κύρια σημεία: 1) Οι εκφράσεις στα αριστερά και δεξιά του σημείου μπορούν να υπολογιστούν με οποιαδήποτε σειρά, 2) τα επιχειρήματα λειτουργίας μπορούν να υπολογιστούν με οποιαδήποτε σειρά. Με βάση αυτό, τώρα θα πρέπει να είναι σαφές γιατί ο κώδικας από το βιβλίο του σκαμνιού είναι εσφαλμένος. Στην έκφραση:

S.replace (0, 4, ""). (S.find ("ακόμα"), 4, "μόνο") .eplace (s.find ("don" t "), 6," ");

Και οι δύο εντυπωσιακές κλήσεις θα λήξουν πριν από την αντικατάσταση του προηγούμενου (σε κώδικα) θα πραγματοποιηθεί. Και ίσως μετά. Ένα άλλο πρώτο μπορεί πριν, και το δεύτερο αργότερα - δεν είναι γνωστό, επειδή Η παραγγελία δεν ορίζεται. Ως αποτέλεσμα, αυτός ο κώδικας δίνει ένα απρόβλεπτο αποτέλεσμα, αν και δεν είναι Np. Ωστόσο, όπως είπα, ένας τέτοιος κώδικας, ένας ικανός προγραμματιστής δεν θα γράψει, αλλά το γεγονός ότι είναι στο βιβλίο του Sturastrup δεν σημαίνει ότι θα ήθελε να γράψει - απλώς έφερε ένα παράδειγμα αλυσιδωτών προκλήσεων.

Επιπλέον, οι προκλήσεις της αλυσίδας μπορεί να μην είναι τόσο εμφανές. Για παράδειγμα, αυτός είναι ο κώδικας:

STD :: Cout<< first << second;

Αυτή είναι και μια αλυσίδα κλήσεων που μπορεί να είναι έτσι:

STD :: Cout.Operator.<<(first).operator<<(second);

Ή όπως:

Χειριστής.<<(operator<<(std::cout, first), second);

Η διαφορά δεν είναι θεμελιώδης. Αν ξαφνικά η έκφραση πρώτα και δεύτερη αναφερθεί κατά κάποιον τρόπο με κάποιο τρόπο σε ένα αντικείμενο, με μία από αυτές τις εκφράσεις τροποποιεί αυτό το αντικείμενο, τότε μια υψηλή πιθανότητα που στην έξοδο θα λάβουμε έναν ασταθές κώδικα ή Np.

Ένα άλλο ενδιαφέρον παράδειγμα της προαναφερθείσας ποινής:

STD :: Χάρτης. Λεξικό; Λεξικό \u003d Λεξικό.

Ναι, ο κώδικας μοιάζει χωρίς νόημα, αλλά τι θα δώσει ως αποτέλεσμα; Ακόμη και ένας άχρηστος κώδικας θα πρέπει να δώσει ένα προβλέψιμο αποτέλεσμα. Δυστυχώς, οι προβολές C ++ του 2014 μόνο σηκώνες - δεν ξέρω, λένε.

Λειτουργίες και χειριστές

Όταν εξετάσαμε την αλυσίδα κλήσεων, αγγίζαμε ένα άλλο ενδιαφέρον σημείο: αυτό που πραγματικά γυρίζει την πρόκληση STD :: Cout<< first << second; . Как мы уже видели, в зависимости от того, чем являются first и second , мы можем получить либо цепочку вызовов функций-членов, либо же вложенные вызовы свободных функций. Но ведь в изначальном варианте записи у нас есть три выражения и 2 оператора << , у нас нет вообще никаких функций!

Είναι απίθανο αυτός ο κώδικας προκάλεσε προβλήματα από τα προβλήματα C ++: όλοι σύντομα ή γρήγορα μαθαίνουμε για την υπερφόρτωση των φορέων εκμετάλλευσης και να τα πάρετε όλα όσο πιο σωστά, αλλά υπάρχει μια απόχρωση σε αυτή την υπερφόρτωση. Για να δείξετε αυτή την απόχρωση, ας γράψουμε ένα τέτοιο πρότυπο λειτουργίας:

Πρότυπο. << "first\n", value++) && (cout << "second\n", value++); }

Ναι, το πρότυπο δεν είναι από το πιο χρήσιμο και αξιοσημείωτο, αλλά όπως θα δούμε τώρα, είναι αρκετά ενδεικτικό. Ας καλέσουμε τη λειτουργία Cleverfun με ένα επιχείρημα τύπου INT, το οποίο θα οδηγήσει σε περίπτωση τέτοιας λειτουργίας:

BOOL CLEVERFUN (INT & VALUE) (Επιστροφή (Cout<< "first\n", value++) && (cout << "second\n", value++); }

Κατά την κλήση αυτής της λειτουργίας, η έξοδος είναι εγγυημένη ότι είναι:

Εάν η πρώτη τιμή ++ επιστρέφει 0, διαφορετικά θα είναι όπως:

ΠΡΩΤΟ ΔΕΥΤΕΡΟΛΕΠΤΟ.

Και καμία άλλη, η οποία είναι προφανής: για τον && φορέα, υπάρχει αυστηρή εγγύηση βραχυκύκλωμα (KZ, Αγγλικά. Βραχυκύκλωμα) και εκτελώντας την αριστερή πλευρά προς τα δεξιά. Από την άλλη πλευρά, αν δημιουργήσουμε ένα συγκεκριμένο τύπο int για override και postfix χειριστής ++ και φορέα εκμετάλλευσης &&, και στη συνέχεια, οργανώνουμε το πρότυπό μας με αυτό, θα έχουμε μια τέτοια λειτουργία:

Int Cleverfun (INT & VALUE) (Επιστροφή (Cout<< "first\n", value.operator++(0)) .operator&&((cout << "second\n", value.operator++(0))); }

Δεν αποκαλύψαμε τι να γυρίσω την κλήση για να μην απορρίπτεται και έτσι δεν είναι πολύ εύκολο να διαβάσετε τον κώδικα ακόμα περισσότερο. Με βάση το προηγουμένως εξετάστηκε, δεν πρέπει να εκπλαγείτε από το γεγονός ότι η παραγωγή αυτού του κώδικα θα διαφέρει από την προκύπτουσα int. Εδώ μπορείτε επίσης να πάρετε 2 επιλογές, αλλά θα είναι άλλοι:

ΠΡΩΤΟ ΔΕΥΤΕΡΟΛΕΠΤΟ.

Δευτερόλεπτο πρώτα.

Προφανώς, η επιλογή με ένα πρώτο δεν μπορούμε να ληφθούν υπόψη το γεγονός ότι η CW για τους ανεπιθύμητους φορείς δεν λειτουργεί. Εάν εξετάσετε προσεκτικά αυτό το παράδειγμα, πρέπει να καταλάβετε γιατί: να εκτελέσετε έναν ανενεργό χειριστή && γι 'αυτό, το επιχείρημα πρέπει να υπολογιστεί (δηλαδή για αντίο), επιπλέον, το KZ λειτουργεί μόνο όταν η έκφραση στα αριστερά είναι bool, η οποία στην περίπτωση επαναπροσδιορισμού του φορέα εκμετάλλευσης δεν μπορεί. Έτσι, για το cz δεν μπορεί να είναι ψευδαισθήσεις - δεν είναι για αντικαταθλιπτικούς φορείς και όχι.

Λοιπόν, το cz δεν μπορεί να είναι, οπότε δεν μπορούμε να λάβουμε την πρώτη επιλογή εξόδου (μόνο πρώτα), αλλά ακόμη και η επιλογή με δύο γραμμές εξόδου μπορεί να διαφέρει και ίσως όχι! Απλά σκεφτείτε: Έχουμε τον ίδιο κωδικό μέσα στο πρότυπο λειτουργίας, το οποίο, με ορισμένα επιχειρήματα προτύπων, εκτελείται σύμφωνα με έναν κανόνες και για άλλους με εντελώς διαφορετικούς.

Όλα αυτά οφείλονται στο γεγονός ότι στις εγγυήσεις C ++ 14 για τους φορείς εκμετάλλευσης και οι τελεστές τους διαφέρουν ανάλογα με τους τελεστές. Σύμφωνα με το πρότυπο, για τους ενσωματωμένους τύπους, όλες οι εγγυήσεις των φορέων εκμετάλλευσης λειτουργούν όπως περιγράφονται για αυτούς στο πρότυπο, αλλά για τους υπερυψωμένους φορείς, οι κανόνες που διαχειρίζονται την κλήση στις λειτουργίες ήδη λειτουργούν. Εκείνοι. Για τους παραγωγούς φορείς εκμετάλλευσης, η έκφραση "επανεξετάζεται" από τον μεταγλωττιστή στην αλυσίδα της λειτουργίας της λειτουργίας των λειτουργιών και μετά την εφαρμογή των κανόνων από το πρότυπο, οι οποίες ορίζονται για μια τέτοια αλυσίδα. Δεν υπάρχουν εγγυήσεις φορέων εκμετάλλευσης από το πρότυπο για επαναπροσδιορισμένους φορείς εκμετάλλευσης δεν λειτουργούν.

Όλοι που περιγράφονται προηγουμένως σχεδιάζουν μια πολύ κακή εικόνα: πάρα πολύ στο C ++ χάος, όσον αφορά τον υπολογισμό των εκφράσεων. Δεν είναι περίεργο ότι ήταν κουρασμένος να βάλει με αυτούς τους ανθρώπους και τις αιώνιες δηλώσεις ότι όλα αυτά χρειάζονται για κάποιες μυθικές βελτιστοποιήσεις και δεν πρέπει να αλλάζουν, έπαψαν να θεωρούνται επαρκή δικαιολογία. Η κοινή λογική θριαμβευτική και C ++ 17 έλαβε κάποιες αλλαγές στο μέρος της καθοδήγησης της τάξης σε αυτό το χάος. Και τι είδους αλλαγές είμαστε τώρα και να εξετάσουμε.

Νέα παραγγελία

Η πρώτη αλλαγή που έφερε η C ++ 17 είναι η παραγγελία Εκτέλεση Οι φορείς εκμετάλλευσης μετά την εκχώρηση, οι φορείς εκμετάλλευσης εκχώρησης, καθώς και οι διαχειριστές σπασμένων μετατόπισης. Τώρα όλοι οι φορείς εκμετάλλευσης μετά το postfix, καθώς και οι χειριστές της κτυπημένης μετατόπισης, εκτελούνται από αριστερά προς τα δεξιά, ενώ οι χειριστές ανάθεσης είναι αντίθετα, δεξιά προς τα αριστερά. Σύμφωνα με την "εφαρμογή", σε αυτό το πλαίσιο, εννοώ το γεγονός ότι η έκφραση υπολογίζεται (δηλ. Το αποτέλεσμα του επιστρέφεται) και όλες οι παρενέργειες που σχετίζονται με αυτό είναι σταθερές (διαπραχθείσες).

Για να εξηγήσετε πώς εντοπίζονται οι εκφράσεις, πάρτε ένα παράδειγμα από την πρόταση (στο παρακάτω παράδειγμα, η έκφραση Α εκτελείται για πρώτη φορά, τότε β):

A.B A-\u003e B A -\u003e * B a (B1, B2, B3) B @ \u003d a a [b] a<< b a >\u003e Β.

Όπου @ είναι επιτρεπόμενος οποιοσδήποτε χειριστής σε αυτό το πλαίσιο (για παράδειγμα +). Έτσι, με βάση τους νέους κανόνες, το παράδειγμα που δίνεται στο βιβλίο του σκαμνιού στο C ++ 11, στο C ++ 17, τελικά γίνεται σωστό και θα δώσει πάντα το σωστό και αναμενόμενο αποτέλεσμα. Όπως μπορείτε να δείτε, οι νέοι κανόνες δεν έχουν αγγίξει τη σειρά εκτέλεσης των επιχειρημάτων της λειτουργίας σε σχέση μεταξύ τους: εξακολουθούν να μπορούν να εκτελεστούν με οποιαδήποτε σειρά, αλλά η εκτέλεσή τους δεν μπορεί να διασταυρωθεί (interleave) μεταξύ τους. Με άλλα λόγια, παραγγέλθηκαν σε σχέση μεταξύ τους, αλλά η παραγγελία δεν ρυθμίζεται.

Τώρα ας δούμε μερικά "ενδιαφέροντα" παραδείγματα, όπου στο C ++ 14 είχαμε NP, και στο C ++ 17, φύγει. Αναφέρομαι αυτά τα παραδείγματα αποκλειστικά για τη δική σας κατανάλωση, σας γράφω να μην βασανίζετε τους ανθρώπους σε συνεντεύξεις.

I \u003d i ++; f (++ i, ++ i) f (i ++, i ++) Array \u003d i ++ i<< i++ cout << i++ << i++

Αλλά αυτά τα παραδείγματα παραμένουν NP σε ένα νέο πρότυπο:

I \u003d i ++ + i ++ i \u003d ++ i * i ++

Επειδή δεν έχουν προστεθεί κανόνες που διέπουν τη διαδικασία εκτέλεσης της απεικόνισης των αριθμητικών χειριστών. Αλλά το γεγονός ότι Το NP χάνεται από αυτά τα παραδείγματα καθόλου σημαίνει ότι είναι καιρός να κορεσθεί ο κώδικας όπως αυτός - όχι. Κάθε ένα από αυτά τα παραδείγματα απαιτεί φροντίδα και αποδείξεις ότι δεν είναι Np. Εκείνοι. Οποιοσδήποτε προγραμματιστής που έχει δει έναν τέτοιο κώδικα θα αναγκαστεί να σταματήσει, να θυμάστε (ή να αναρριχηθεί στο πρότυπο) και να βεβαιωθεί ότι βλέπει τον σωστό κώδικα. Ο κώδικας δεν πρέπει να είναι "έξυπνος", ο κώδικας πρέπει να είναι κατανοητός. Επιπλέον, ένας τέτοιος συνδυασμός εκφράσεων δίνει λίγη, στην πραγματικότητα.

Με την ευκαιρία, ο προσεκτικός αναγνώστης παρατήρησε πιθανώς το επίκεντρο της γραμμής<< i++ << i++ в вышеприведённых примерах, и если он не знает обо всех правилах и поверил автору, то он наверняка воспользовался такой логикой: пример переписывается как

Cout.Operator.<<(i++).operator<<(i++)

Μετά από αυτό, ισχύουν νέοι κανόνες για αυτό. , οπότε δεν υπάρχει κώδικας στον κώδικα Np. Μια τέτοια συλλογιστική φαίνεται λογική, αλλά όχι αρκετά σωστή. Στην πραγματικότητα, όλα είναι ευκολότερα: ένα παράδειγμα είναι πραγματικά "ξαναγραφεί" από τον μεταγλωττιστή σε εκείνη που έφερα, αλλά η σειρά εκτέλεσης είναι χτισμένη στην επανεγγραφή! Εκείνοι. Σύμφωνα με τους νέους κανόνες, Οι υπερφορτωμένοι φορείς εκμετάλλευσης υπόκεινται σε κανόνες εκτέλεσης για τους ενσωματωμένους χειριστές.Τουλάχιστον όσον αφορά τη διαδικασία υπολογισμού της απεικόνισης. Επομένως, με βάση το γεγονός ότι ο διαχειριστής του αριστερού τελεστή<< вычисляется до правого у нас и нет NP σε κώδικα.

Αποδεικνύεται ότι δεν έχουμε πλέον μια διαφορά σε ποια σειρά θα εκτελεστούν για ενσωματωμένους και υπερφορτωμένους φορείς και το παράδειγμά μας από το παρελθόν τμήμα:

Πρότυπο. Bool Cleverfun (T & Value) (Επιστροφή (Cout<< "first\n", value++) && (cout << "second\n", value++); }

Για οποιονδήποτε τύπο, πρώτα θα αποσυρθεί πάντα πρώτα και στη συνέχεια δεύτερη. Η εντολή αντίστροφης εξόδου αποκλείεται τώρα από το πρότυπο. Αυτό είναι σίγουρα μια πολύ σημαντική καινοτομία που σας επιτρέπει να μιλήσετε στον κώδικα που είναι γραμμένο και όχι τι θα δημιουργηθεί από αυτό. Είναι ενδιαφέρον να σημειωθεί ότι αυτή η καινοτομία προκάλεσε τη διαφορά μεταξύ της ρητής και σιωπηρής πρόκλησης του υπερφορτωμένου φορέα εκμετάλλευσης. Εξετάστε ένα παράδειγμα:

#Περιλαμβάνω. Χρησιμοποιώντας το Namespace STD. Class Someclass (φίλος INT<<(const SomeClass& obj, int&); public: SomeClass(int var): m_Var{var} { } private: int m_Var; }; int operator<<(const SomeClass& obj, int& shift) { return obj.m_Var << shift; } int main() { int i = 0; int result = SomeClass{i = 1} << (i = 2); cout << "First result: " << result << "\n"; result = operator<<(SomeClass{i = 1}, i = 2); cout << "Second result: " << result << "\n"; };

Το πρώτο αποτέλεσμα είναι εγγυημένο ότι είναι 4, ενώ το δεύτερο μπορεί να είναι 2 και 4. Αυτό το παράδειγμα δείχνει καλά τη διαφορά μεταξύ της ρητής και σιωπηρής κλήσης στον υπερφορτωμένο χειριστή στο C ++ 17.

Προφανώς, με την εισαγωγή μιας νέας τάξης, εμφανίστηκαν πολλές διαφορετικές πολύπλοκες εκφράσεις που έδωσε NP σε προηγούμενα πρότυπα και τώρα είναι επιτρεπτή, αλλά αυτό δεν σημαίνει ότι θα πρέπει να αρχίσουν να εμφανίζονται μαζικά στον κώδικα. Δεν πρέπει να είναι μόνο επειδή είναι περίπλοκοςΚαι το μόνο που είναι δύσκολο να κατανοηθεί. Αλλά οι νέοι κανόνες μας δίνουν όχι μόνο τη δυνατότητα κλήσης λειτουργιών τύπου f (i ++, i ++), χωρίς φόβο να αποκτήσετε ένα μη λειτουργικό πρόγραμμα. Νέοι κανόνες προδοσίας κωδικού πρόσβασης στο C ++ πιο αυστηρότητα και παραγγελία, χάρη στην οποία, συμπεριλαμβανομένων, μπορούμε τώρα να γράψουμε αξιόπιστο κώδικα με αλυσίδα αλυσίδας (ρητή ή σιωπηρή - ανεξάρτητα).

Παρόλο που εξέφρασα κάποιο "fi" σχετικά με τον κώδικα από το βιβλίο του σκαμνιού, είμαι μακριά από έναν αντίπαλο αλυσιδωτών προκλήσεων και αν κοιτάξετε τον σύγχρονο κώδικα, γραμμένο χρησιμοποιώντας επιτακτικές γλώσσες, τότε μπορούμε να δούμε ότι περιέχει όλο και περισσότερο Αλυσίδες (για παράδειγμα Linq και Task + Συνέχεια με το C #, ή το Lodash / UnderCore και υπόσχεση + τότε από το JS). Το C ++ πηγαίνει επίσης προς αυτή την κατεύθυνση και σύντομα μπορούμε να δούμε τα ανάλογα των παραπάνω παραδειγμάτων με τη μορφή εύρους-V3 και μέλλοντος + στη συνέχεια στα μελλοντικά πρότυπα C ++. Αλλά πριν από την απελευθέρωση νέων προτύπων, μπορούμε να χρησιμοποιήσουμε διάφορες βιβλιοθήκες των οποίων η διεπαφή ενθαρρύνει τη χρήση αλυσίδας αλυσίδας.

Γενικά, κατά τη γνώμη μου, η αλλαγή των κανόνων για τη διαδικασία υπολογισμού των εκφράσεων είναι μία από τις σημαντικότερες καινοτομίες C ++ 17, που λίγοι άνθρωποι θα παρατηρήσουν, επειδή τα πάντα (ή σχεδόν τα πάντα) θα λειτουργήσουν απλά όπως θα πρέπει να λειτουργήσει σύμφωνα με την κοινή λογική. Και η κοινή λογική στο πρότυπο C ++ γίνεται όλο και περισσότερο.

Ελαχιστοποιήστε την αντιγραφή

Ένα από τα πρώτα βήματα στην εκπαίδευση C ++ είναι η μελέτη του κατασκευαστή αντιγραφής. Μετά από όλα, χρησιμοποιώντας το μπορείτε εύκολα να καθορίσετε τι και κατά την αντιγραφή. Εκείνοι. Γράφουμε την τάξη μας, προσθέτουμε έναν κατασκευαστή αντιγραφής εκεί, στην οποία συνταγογραφήσουμε την έξοδο μέσω του αγώνα και απολαμβάνουμε την παραγωγή, σύμφωνα με την οποία ανακαλύπτουμε πόσα αντίγραφα που δημιουργήσαμε.

Με την έλευση της σημασιολογίας της κίνησης, η κατάσταση ήταν κάπως πιο περίπλοκη, έτσι ώστε για την πληρότητα την εικόνα χρειάζεται τώρα να δημιουργήσει ένα κινούμενο κατασκευαστή. Αλλά για αυτό το τμήμα δεν έχει σημασία, επειδή Όλα τα αρωματικά είναι αληθινά τόσο για την αντιγραφή όσο και για τη μετακίνηση.

Για παράδειγμα, ας γράψουμε έναν τέτοιο κωδικό:

#Περιλαμβάνω. Χρησιμοποιώντας το Namespace STD. Class Someclass (κοινό: someclass () \u003d προεπιλογή; someclass (Const Someclass &) (Cout<< "Copy ctor called.\n"; } }; SomeClass meReturn() { return SomeClass{}; } int main() { auto some = meReturn(); };

Πόσες φορές εμφανίζεται στην οθόνη η φράση "Αντιγραφή CF TAR που ονομάζεται", εάν συλλέγετε αυτόν τον κώδικα στον μεταγλωττιστή που εφαρμόζει C ++ 14 και εκτελέστε το πρόγραμμα; Μηδέν, ένα, ή μπορεί να είναι δύο φορές; Η σωστή απάντηση είναι: Άγνωστη.

Εκείνοι για τους οποίους η απάντηση έχει γίνει μια έκπληξη, άξιζε τις εξηγήσεις στις οποίες πηγαίνουμε. Έτσι, πρώτα ας αφήσουμε το πρότυπο και να εξετάσουμε ποιο μέγιστο αριθμό αντιγράφων εδώ. μπορώ να δημιουργηθεί. Ο μεγαλύτερος αριθμός πιθανών αντιγράφων εδώ είναι ο αριθμός 2: Το πρώτο αντίγραφο δημιουργείται κατά την εκτέλεση της δήλωσης επιστροφής και το δεύτερο αντίγραφο δημιουργείται κατά το σχεδιασμό του ορισμένου αντικειμένου. Αλλά αν εκτελέσετε αυτόν τον κώδικα σε έναν περισσότερο ή λιγότερο σύγχρονο μεταγλωττιστή (χωρίς πρόσθετα πλήκτρα!), Είστε απίθανο να δείτε μια διπλή έξοδο. Ένα πιο πιθανό αποτέλεσμα είναι είτε μία γραμμή, είτε δεν θα υπάρξει καθόλου έξοδος. Τώρα ένας μικρός τροποποιημένος κώδικας της λειτουργίας μας, θα είναι η δεύτερη επιλογή:

Someclass mereturn () (someclass κάποια (); επιστρέψτε μερικά;)

Εάν εκπληρώσουμε αυτόν τον κώδικα σε δημοφιλείς μεταγλωττιστές, η έξοδος μπορεί να αλλάξει και όχι (αλλάζει (MSVC 2017, σε λειτουργία εντοπισμού σφαλμάτων). Τέλος, αλλάζουμε ακόμα τον κωδικό λειτουργίας, μόνο αυτή τη φορά η έξοδος είναι εγγυημένη για να αλλάξει (σε \u200b\u200bσχέση με την πρώτη επιλογή και λαμβάνοντας υπόψη την τρέχουσα θέση των πραγμάτων με τους μεταγλωττιστές):

Someclass mereturn () (someslass κάποια (); αν (ψευδής) επιστροφή someclass (); επιστρέψτε μερικούς;)

Έτσι, η λειτουργία, στην ουσία, σε όλες τις εκδόσεις το ίδιο και η συμπεριφορά είναι διαφορετική - τι συμβαίνει εδώ; Ξανά από την αρχή. Σύμφωνα με το πρότυπο C ++, σε ορισμένες περιπτώσεις ο μεταγλωττιστής δεν μπορεί να αντιγράψει το αντικείμενο. Αυτή η κατάσταση ονομάστηκε Περνώντας αντιγραφή (PC, English Copy Elision). Μια πλήρης λίστα (μάλλον σύντομη) χαρακτηριστικά για τις οποίες μπορείτε να προσδιορίσετε αν η παράλειψη αντιγράφων επιτρέπεται να περιγραφεί στην κλάση.Copy / P31. Μας ενδιαφέρει δύο παρόμοιες, αλλά ακόμα διαφορετικές καταστάσεις.

Στο αρχικό παράδειγμα, η λειτουργία μας επιστρέφει προσωρινή ανώνυμος ένα αντικείμενο. Σε μια τέτοια κατάσταση, ο μεταγλωττιστής έχει το δικαίωμα να μειώσει τόσο την αντιγραφή όσο και απλά να δημιουργήσει ένα αντικείμενο ευθεία σε μερικούς. Στους ανθρώπους, αυτή η κατάσταση ονομάστηκε Βελτιστοποίηση της επιστρεφόμενης τιμής (OBA, αγγλική βελτιστοποίηση αξίας επιστροφής). Αν κοιτάξουμε το GCC / Clang / MSVC, θα το δούμε για μια τέτοια λειτουργία να απαλλαγούν και τα δύο αντίγραφα και, ως εκ τούτου, η έξοδος θα είναι κενή.

Η βελτιστοποίηση αυτή επιτρέπεται όχι μόνο για επιστροφή, αλλά και για άλλα μέρη όπου αρχικοποιείται η αρχικοποίηση ενός προσωρινού, ανώνου αντικειμένου. Έτσι, αν έχετε ένα κενό meaccept (someclass), το οποίο ονομάζεται meacept (someclass ()), τότε ο μεταγλωττιστής έχει το δικαίωμα να παραλείψει την περιττή αντιγραφή.

Τώρα ας στραφούμε στη δεύτερη επιλογή όπου δημιουργήσαμε ονομάστηκε Αντικείμενο στη στοίβα. Η έξοδος για το GCC / CLANG δεν έχει αλλάξει, αλλά για το MSVC (στη λειτουργία Debug) υπήρξε μία γραμμή στην έξοδο, είναι προφανές ότι στην περίπτωση αυτή το MSVC απαλλαγεί από το δεύτερο αντίγραφα. Με βάση τα παραπάνω, γίνεται σαφές ότι ο μεταγλωττιστής χρησιμοποιεί επίσης τον υπολογιστή, αλλά αυτό συμβαίνει σύμφωνα με ένα ελαφρώς διαφορετικό κριτήριο: έχει το δικαίωμα να απαλλαγεί από την αντιγραφή Ονομάστηκε Το αντικείμενο στη στοίβα που επιστρέφει από τη λειτουργία. Παρόμοια βελτιστοποίηση που ελήφθη στο όνομα των ανθρώπων Βελτιστοποίηση της ονομασμένης επιστροφής τιμής (OIVZ, Αγγλικά. Ονομάστηκε Βελτιστοποίηση αξίας επιστροφής).

Αυτός ο μεταγλωττιστής βελτιστοποίησης είναι πιο δύσκολος να συμμορφωθεί με αυτό που είμαστε ορατές στην τρίτη έκδοση, όπου προστέθηκαν απολύτως άχρηστα αν, γεγονός που έκανε και τους τρεις κύριους μεταγλωττιστές να σώσουν και να δημιουργήσουν ένα αντίγραφο. Έτσι, το OIVZ είναι πιο "εύθραυστη" βελτιστοποίηση από τα απλά ops, και, κατά κανόνα, απενεργοποιείται όταν υπάρχουν πολλές διαφορετικές απόδοση στον κώδικα. Αυτό είναι ένα από τα επιχειρήματα γιατί μόνο μία απόδοση πρέπει να είναι στη λειτουργία (δεν μπορώ να πω ότι το επιχείρημα είναι πολύ πειστικό).

Ένα ενδιαφέρον γεγονός είναι ότι η προαναφερθείσα βελτιστοποίηση χρησιμοποιείται σε μεταγλωττιστές ακόμη και όταν συγκεντρώνουμε με τη βελτιστοποίηση που αποσυνδέεται (-Ο0, / od). Επιπλέον, μπορούν να γίνουν μόνο GCC και Clang για τη δημιουργία όλων των αντιγράφων. Για να το κάνετε αυτό, πρέπει να χρησιμοποιήσετε το κλειδί -Fno-Elide-Constractors και το MSVC σε καμία περίπτωση δεν θα δημιουργήσει δύο αντίγραφα και δεν υπάρχουν [δημόσια] κλειδιά για να απενεργοποιήσετε αυτή τη συμπεριφορά.

Υπάρχει μια άλλη στιγμή για να αναφέρω. Αν και στο C ++ 14 μεταγλωττιστή και μπορεί να αφαιρέσει και τα δύο αντίγραφα, έτσι χωρίς να εκτελεί ποτέ τον κατασκευαστή αντιγραφής ποτέ, θα πρέπει να δώσει ένα σφάλμα σύνταξης εάν δεν υπάρχει τέτοιος σχεδιαστής. Εκείνοι. Αν γράψουμε έτσι αντί του υπάρχοντος σχεδιασμού σχεδιασμού: Someclass (Const Someclass &) \u003d ΔιαγραφήΤο πρόγραμμα δεν θα πειράξει ακόμη και όταν οι μεταγλωττιστές μπορούν να απαλλαγούν - ο σχεδιαστής πρέπει να είναι ακόμα.

Λοιπόν, τελικά το τρίτο: κινείται. Εάν ο μεταγλωττιστής μπορεί να παραλείψει το αντίγραφο, μπορεί να παραλειφθεί. Εκείνοι. Από την άποψη αυτή, είναι απολύτως ισοδύναμα. Από την άποψη αυτή, συνδέεται με μια ενδιαφέρουσα κατάσταση. Πολλοί προγραμματιστές (το συμπέρασμα σχετικά με πολλούς με τη βάση του κώδικα που είδα στο δίκτυο) Μην καταλάβετε αρκετά το σημασιώδες της κίνησης και να γράψω τον κώδικα είναι παρόμοια με αυτό: Επιστροφή STD :: Μετακίνηση (κάποιας). Φαινομενικά ο κώδικας είναι απολύτως αβλαβερός και λειτουργεί όπως αναμένεται γράφοντας, μόνο αυτός ο κώδικας Εγγυημένος Απενεργοποιεί το AIC. Όπως νομίζετε, τι είναι καλύτερο: Κάνετε ένα φτηνό κινούμενο κατασκευαστή, ή δεν κάνετε τίποτα καθόλου;

Νέα πραγματικότητα

Τώρα ήρθε η ώρα να εξετάσουμε τι έχει αλλάξει σε C ++ 17 σχετικά με το PC. Όλες οι αλλαγές, μέρος της οποίας και τι θα συζητήσουμε σε αυτό το τμήμα μπορούν να βρεθούν στην αρχική πρόταση P0135R1. Εάν κοιτάξετε αυτό το έγγραφο, θα δείτε ότι περιγράφει πολλές τροποποιήσεις του προτύπου όσον αφορά την κατηγορία των εκφράσεων (σε μεγαλύτερο βαθμό Επιτυχία.), καθώς και διάφορες τροποποιήσεις που διευκρινίζουν πού να εκτελέσουν ρητά ευθεία (Απευθείας-) και αντίγραφο (Αντιγραφή-) αρχικοποίηση. Είμαστε από όλο αυτό το σύνολο είναι μόνο μία αλλαγή, η οποία περιγράφεται στο STMT.return / P2.

Έτσι, σύμφωνα με την παραπάνω καινοτομία, η επιστροφή από τη λειτουργία ενός προσωρινού ανώνου αντικειμένου (προληπτική) του ίδιου τύπου (π.χ., δεν απαιτείται μετατροπή), όπως ο τύπος λειτουργίας που επιστρέφεται, εκτελεί μια αντιγραφή αρχικοποίηση του αποτελέσματος (η οποία, σύμφωνα με στο DCL.init / P (17,6. 1) σας επιτρέπει να παραλείψετε την αντιγραφή). Που γράφτηκε στην παραπάνω πρόταση είναι, κατ 'ουσίαν, το ίδιο ωάριο, μόνο αυτή τη φορά Επιτακτικός. Εκείνοι. Αν στο C ++ 14 μεταγλωττιστή Θα μπορούσε να απαλλαγείτε από το αντίγραφο / μετακίνηση σε αυτή την περίπτωση τώρα πρέπει Κάνε το. Αυτό που μας δίνει, επειδή έχουμε ήδη δει ότι ο μεταγλωττιστής και ο απόλυτα αγχωτικοί καλά; Και μας δίνει αυτό το επόμενο, έχοντας έναν τέτοιο κώδικα:

Someclass mereturn () (επιστροφή someclass ();)

Δεν μπορούμε να έχουμε αντιγραφή και μετακίνηση κατασκευαστών καθόλου, και θα εξακολουθεί να καταρτίζεται. Είναι σημαντικό να σημειωθεί ότι μόνο η περίπτωση έχει αλλάξει όταν ένα άλλο αντικείμενο δημιουργείται από το προσωρινό ανώνυμο αντικείμενο, αν επιστρέψουμε το όνομα αντικείμενο (OIVZ), ακόμη και αν ο μεταγλωττιστής μπορεί να παραλείψει την αντιγραφή, απαιτείται η παρουσία του κατάλληλου σχεδιαστού.

Υπάρχει ένα ακόμη σημείο που σχετίζεται ήδη με τη μεταφορά επιχειρημάτων και όχι επιστρεφόμενη αξία. Αν έχουμε αυτόν τον κώδικα:

Άκυρη meaccept ([] someclass s) ()

Όταν καλέσετε τη λειτουργία Meaccept (Somesclass ()), δεν θα υπάρχει και πάλι αντίγραφο και δεν είναι πλέον βελτιστοποίηση, αλλά η τυποποιημένη απαίτηση. Αυτό οφείλεται σε αλλαγές στον ορισμό της προληπτικής επένδυσης (Basic.lval) και από το γεγονός ότι αυτή η αλλαγή εμπλέκεται. Ας δούμε μέσα από αυτή τη γραμμή: meaccept (someclass ()). Εάν μιλάμε από την άποψη της παλιάς επιτήρησης, τότε η σομμλαία () είναι ένα προσωρινό αντικείμενο, το οποίο στη συνέχεια αντιγράφεται στην παράμετρο λειτουργίας. Αλλά ο νέος ορισμός της επιτήρησης είναι ότι δεν είναι πλέον ένα αντικείμενο, αλλά έκφραση, του οποίου ο υπολογισμός είναι η αρχικοποίηση του αντικειμένου. Τι σημαίνει αυτό για εμάς; Αυτό σημαίνει ότι στην υπό εξέταση έκφρασή μας, η σόμκα () δεν είναι προσωρινό αντικείμενο, αλλά μια έκφραση της αρχικοποίησης της παραμέτρου λειτουργίας. Εδώ, ήδη αναφέρεται από εμάς που περιγράφηκε προηγουμένως στο DCL.init / P (17.6.1) και δεν υπάρχει αντιγραφή - εκτελείται άμεσα η αρχικοποίηση.

Με την πρώτη ματιά, αυτή είναι μια μάλλον μικρή καινοτομία, επειδή το ίδιο συνέβη πριν, μόνο οι μεταγλωττιστές δεν ήταν υποχρεωμένοι να το κάνουν αυτό. Παρ 'όλα αυτά, αυτή η καινοτομία άλλαξε την ουσία της έννοιας της επιτήρησης, οπότε δεν αξίζει τον κόπο για ένα ελαφρύ. Ναι και από καθαρά πρακτική άποψη, είναι απαραίτητο να γνωρίζουμε σχετικά με αυτή την αλλαγή, διότι όταν μελετάτε τη γλώσσα, θα το μάθουμε εμπειρικά, και σε αυτή τη διαδικασία, τα πειράματα με αντιγραφή / μετακίνηση κατασκευαστών βρίσκονται πολύ συχνά. Έτσι, ξεκινώντας με C ++ 17, δεν μπορείτε να αναγκάσετε τον μεταγλωττιστή να κάνει ένα αντίγραφο στα παραδείγματα που περιγράφηκαν προηγουμένως. Καμία σημαία δεν θα βοηθήσει εάν το πρόγραμμα καταρτιστεί για C ++ 17, και ο μεταγλωττιστής το υποστηρίζει πραγματικά. Όσον αφορά τον περιστασιακό κώδικα, αυτή η καινοτομία σας επιτρέπει να δημιουργήσετε εργοστασιακές λειτουργίες που επιστρέφουν αντικείμενα που δεν έχουν σχεδιαστές αντιγραφής / μετατόπισης. Πόσο χρειάζεται; Ο χρόνος θα δείξει.

Λάμπδα

Η ΕΟΚΕ συνεχίζει να δείχνει την Lambdam την αγάπη του, προσθέτω κάτι νέο σε αυτούς σε κάθε νέα έκδοση του προτύπου. Το 2017 δεν ήταν εξαίρεση και η Λάμπδα έλαβε το μέρος της καινοτομίας τους. Αν και συνεχίζω να περιμένω μια σύντομη σύνταξη (όπως c # ένα x \u003d\u003e x) και θεωρώ τις καινοτομίες αυτού του κανονικού ασήμαντος, εξακολουθώ να μην μπορώ να περάσω γύρω τους.

Καταγραφή αυτού

Έτσι, η καινοτομία είναι η πρώτη. Τώρα η λίστα καταγραφής μπορεί να μεταδοθεί ένα αντίγραφο του αντικειμένου χρησιμοποιώντας αυτόν τον δείκτη. Πριν από το C ++ 17, αν θέλαμε να μεταφέρουμε ένα αντίγραφο του τρέχοντος αντικειμένου στη λάμδα, αναγκάστηκαν να γράψουμε κάτι τέτοιο:

#Περιλαμβάνω. Χρησιμοποιώντας το Namespace STD. Someclass κατηγορίας (κοινό: someclass (τιμή μεγέθους): m_Value (τιμή) κενό somemethod () (auto lambda \u003d [_Αυτός \u003d * αυτό] (για (μέγεθος_t i \u003d 0; i< _this.m_Value; ++i) cout << "This is lambda!!!\n"; }; lambda(); } private: size_t m_Value; }; int main() { SomeClass some{3}; some.someMethod(); };

Το κύριο μειονέκτημα αυτής της προσέγγισης είναι η ανάγκη να προσδιοριστεί ρητά το όνομα του αντικειμένου στο οποίο αντιγράφηκαν * αυτό, με κάθε έκκληση σε αυτό. C ++ 17 Διορθώνει αυτό το μειονέκτημα, επιτρέποντάς σας να γράψετε έτσι:

Auto lambda \u003d [* αυτό] (για (μέγεθος_t i \u003d 0; i< m_Value; ++i) cout << "This is lambda!!!\n"; };

Εκείνοι. Η πρόσβαση στις ιδιότητες του αντικειμένου πραγματοποιείται ακριβώς με τον ίδιο τρόπο όπως και αν δημιουργήσαμε μια λάμδα με έναν τέτοιο κατάλογο σύλληψης, αλλά στο Λάμπδα δεν υπάρχει κανένα τρέχον αντικείμενο (δηλ. Αυτός ο δείκτης) και το αντίγραφό του. Θέλω να σημειώσω ότι δεν έπρεπε να γράψω έναν τέτοιο κώδικα, οπότε είναι δύσκολο για μένα να αξιολογήσω τη χρησιμότητα της καινοτομίας, αλλά κάποιος θα γίνει σαφώς ευκολότερος. Μπορώ μόνο να χαίρομαι γι 'αυτούς και να πάμε στην επόμενη καινοτομία.

Χρειάζεστε πιο σταθερή!

Μια άλλη αλλαγή που πρότεινε εδώ και πολύ καιρό, αυτή είναι η προσθήκη της χρήσης του Lambd σε συνεχείς εκφράσεις. Φυσικά, τέτοιες λάμψη πρέπει επίσης να είναι σταθερές. Για παράδειγμα:

Αυτόματη έντεκα \u003d (επιστροφή 11;); Πίνακας. Arr;

Όπως μπορείτε να δείτε, ο ορισμός του Lambda δεν έχει αλλάξει, αλλά η κλήση του χρησιμοποιείται στο πλαίσιο, όπου είναι απαραίτητο να χρησιμοποιήσετε τη σταθερά του χρόνου σύνταξης. Επειδή Αυτός ο κώδικας καταρτίζεται με επιτυχία, οποιοσδήποτε προσεκτικός προγραμματιστής μπορεί να κάνει το ακόλουθο συμπέρασμα: Η κατηγορία του χειριστή που παράγεται από τη Λάμπδα, είναι μέλος της Κωνσταντς και αυτό το συμπέρασμα, χωρίς αμφιβολία πιστή. Ξεκινώντας με C ++ 17, όλες οι εκφράσεις Lambda είναι Constexpr, ενώ στο C ++ 17 ήταν απλά const. Αλλά θα μειωθούν στο Const, εάν το όργανο λειτουργίας Lambda δεν αντιστοιχεί σε τουλάχιστον ένα κριτήριο, οι οποίες υπόκεινται σε όλες τις λειτουργίες Condexpr (τα κριτήρια περιγράφονται στο DCL.Constexpr). Κάνετε ελάχιστη αλλαγή στον κώδικα μας και η λάμδα θα σταματήσει να είναι constexpr:

Auto έντεκα \u003d (int x, επιστροφή 11;);

Με έναν τέτοιο κώδικα λάμδα της δημιουργίας ενός πίνακα θα δώσει ένα σφάλμα σύνταξης (το οποίο, στην πραγματικότητα, στην πραγματικότητα, αναζητούμε), αλλά η δημιουργία λαβών λάμδα δεν θα δώσει. Ωστόσο, μπορούμε να περιστρέψουμε τα καρύδια και τη ζήτηση από τη λάμδα για να έχουμε ένα σώμα που υποβάλλεται στους προαναφερθέντες κανόνες:

Auto Eleven \u003d () Condexpr (int x, επιστροφή 11;);

Παρακαλείστε να σημειώσετε ότι έπρεπε να προσθέσουμε τόσο ένα προφανές constexpr όσο και (), το οποίο δεν φέρει κανένα λειτουργικό φορτίο και χρησιμεύει μόνο μόνο την πιο ομοιότητα του προτύπου. Έτσι, μπορούμε να δημιουργήσουμε λειτουργίες lambda που εγγυώνται μπορούν να χρησιμοποιηθούν σε ένα πλαίσιο διατήρησης.

Αυτή η αλλαγή διευκολύνεται από καιρό και δεν πρέπει να είναι για κανέναν έκπληξη: οι απλές λειτουργίες μπορούν να είναι constexpr, λειτουργία μέλους - και τι είναι χειρότερη η λάμδα; Πόσο χρειάζεται η Constexpr Lambda; Αυτό είναι πιο ενδιαφέρον. Νομίζω ότι χρειάζονται έναν κωδικό condexpr όσο χρειάζονται έναν απλό κώδικα. Τώρα το C ++ παρατηρείται από την Boom Condexpr: οι άνθρωποι ανταγωνίζονται ποιος θα προχωρήσει περαιτέρω στη μεταφορά εργασίας από το χρόνο εκτέλεσης κατά τη διάρκεια της συλλογής.

Φτάνουν στη γραφή του αναλυτή JSON και ακόμη και πριν από την εκτέλεση των κανονικών εκφράσεων (που ενδιαφέρονται, ανατρέξτε στο βίντεο με cppcon2017: "Constexpr όλα τα πράγματα!"). Επιπλέον, υπάρχουν όλο και περισσότεροι τυπικοί (και όχι πολύ) αλγόριθμοι που γίνονται constexpr, οι οποίοι δημιουργούν την πιο προφανή χρήση του Lambd, επειδή απλά δημιουργούνται για αλγόριθμους. Ως εκ τούτου, κατά τη γνώμη μου, η προσθήκη ενός constexpr είναι ένα καλό βήμα προς τα εμπρός, η οποία θα επιτρέψει τη σύνταξη μεγαλύτερη κώδικα που θα εκτελεστεί κατά τη διάρκεια της σύνταξης.

Από την άλλη πλευρά, χρειαζόμαστε πραγματικά τόσο πολύ για να μεταφερθούμε στο στάδιο σύνταξης; Φυσικά, όταν κάτι μπορεί να μεταφερθεί από μια πολλαπλή δυναμική έκδοση, σε μία μόνο εκτέλεση κατά τη σύνταξη είναι ένα συγκεκριμένο πλεονέκτημα. Ή όχι? Εξαρτάται από το έργο και τα οφέλη που έχουμε κατά τη διάρκεια της εκτέλεσης. Ας γράψαμε τον αναλυτή JSON, το οποίο καταναλώνει τη μάζα της μνήμης RAM και αυξάνει τον χρόνο σύνταξης (κοιτάξτε τουλάχιστον τα τελευταία 3 λεπτά από το προαναφερθέν βίντεο), τι μας δίνει; Ναι, τώρα μπορούμε να αποσυναρμολογήσουμε τη διαμόρφωση κατά τη διάρκεια της συλλογής και να το χρησιμοποιήσουμε στον κώδικα. Αλλά θα μπορούσαμε να το κάνουμε πριν, χωρίς να χρησιμοποιήσουμε τον JSON και αυτό θα ήταν επίσης ένα μηδενικό φορτίο κατά τη στιγμή της εκτέλεσης (απλά ένα σύνολο σημαιών στον τίτλο, για παράδειγμα). Μου θυμίζει ένα γενειοφόρο αστείο:

Δύο φίλοι βρίσκονται:

- Άκουσα εδώ, αγοράσατε το αυτοκίνητο;

- Ναί! Και πώς ζούσα! Τώρα όλα είναι καιρός! Χθες, μια μέρα κατάφερα να αλλάξω το πετρέλαιο, να αγοράσω νέα ελαστικά, πήγε στην αγορά αυτοκινήτων πίσω από τα φτερά, αμέσως πήγαμε στην υπηρεσία αυτοκινήτων και άλλαξε τα και άλλαξε και οδήγησα στο κατάστημα για μη παγιδευτικά. Και πώς θα έχω χρόνο χωρίς αυτοκίνητο;!

Μπορώ να υποστηρίξω, λένε, ο Json είναι πιο βολικός. Ας είναι. Στη συνέχεια, ας προσθέσουμε το σενάριο στο ίδιο Python (ή γενικά cmake), το οποίο θα δημιουργηθεί σε εμάς για να δημιουργήσουμε ένα αντικείμενο διαμόρφωσης από τον JSON. Ναι, θα πρέπει να προσθέσουμε ένα ακόμη βήμα προς τη συναρμολόγηση του έργου μας, αλλά είναι πιο δύσκολο να γράψετε κώδικα στο C ++, το οποίο αποσυναρμολογεί τον JSON; Ναι, και κανείς δεν έχει ακυρώσει το χρόνο σύνταξης (και θεωρώ πολύ πιο ουσιαστικά ο λόγος σημαντικά): αν ο κώδικας καταρτιστεί για μεγάλο χρονικό διάστημα, τότε η ανάπτυξη θα μετατραπεί στην κόλαση. Ως εκ τούτου, δεν βλέπω απολύτως το νόημα στη μεταφορά σύνθετων πραγμάτων στις ράβδους Constexpr. Κατά τη γνώμη μου, αυτή είναι μια επιπλέον επιπλοκή που μπορεί να εμφανιστεί σε συνέδρια, αλλά απολύτως καμία ανάγκη σε πραγματικό κώδικα. Η χρήση υπολογισμών κατά τη διάρκεια της συλλογής πρέπει να δικαιολογείται και όχι μόνο επειδή "μπορούμε τώρα!".

Οι δύο τελευταίες παραγράφους μπορούν να δώσουν μια λανθασμένη ιδέα της στάσης μου σε αυτή την καινοτομία: Δεν είμαι εναντίον του, είμαι μόνο εναντίον να φράξει τα νύχια από ένα μικροσκόπιο, αυτό είναι όλο. Το παράδειγμα του τελευταίου είναι σαφώς ορατό στο βίντεο με το CPPCON, αλλά η ίδια η εμφάνιση του Lambd Constexpr είναι, φυσικά, καλά νέα, επειδή η Lambda, λειτουργικά, δεν πρέπει να είναι διαφορετική από τις συνηθισμένες λειτουργίες - πρέπει να έχουν όλα τα ίδια χαρακτηριστικά, Και αν η μνήμη δεν αλλάξει, παραμένει να προσθέσετε μόνο ένα πράγμα: που ονομάζεται παράμετροι προτύπου για το Lambd. Περιμένοντας τους στο C ++ 20;

Σε οποιαδήποτε ακατανόητη κατάσταση, η ηρεμία, η καθυστέρηση, ο ίδιος, ο ίδιος, πηγαίνετε φαγητό σνακ. Φροντίστε το νεύρο :)

Αφήστε τα λάθη του παρελθόντος.

Εκτιμήστε το παρόν.

Μικρό μέλλον)

Μόλις αφήσουν την κατάσταση που σας ταιριάζει, αμέσως η κατάσταση θα σας αφήσει να πάτε.




Μην βγείτε από τον εαυτό σας. Δεν είναι γνωστό τι μπορεί να συμβεί στην απουσία σας.

Έρχονται στο δέντρο. Αφήστε το να σας διδάξει η ηρεμία.

- Ποιο είναι το μυστικό της ηρεμίας σας;

"Σύντομα από το αναπόφευκτο", ο κύριος απάντησε.

Μετακίνηση της παραγγελίας στις σκέψεις - και θα δείτε τον κόσμο με άλλα μάτια.

Η καρδιά δεν ξεχάσετε να καθαρίσετε.

Τι είναι η ειρήνη;

Έλλειψη περιττών σκέψεων.

Και ποιες σκέψεις είναι περιττές;

(Wei de-han)

Το πιο σημαντικό πράγμα είναι ο θησαυρός σας είναι ο κόσμος στο ντους.

Το χαμομήλι καταπραΰνει.

Διαχειριστείτε τη διάθεσή σας, γι 'αυτό, αν δεν υπακούει, στη συνέχεια εντολές.


Μπορείτε να βρείτε την ειρήνη του μυαλού, να γίνει ένας παρατηρητής, ηρεμία, ηρεμία για μια μιμωμένη πορεία ζωής. Irwin yal.



Η ηρεμία είναι ισχυρότερη από τα συναισθήματα.

Σιωπή - πιο δυνατή φωνή.

Και τι θα συμβεί σε σας - μην πάρετε τίποτα στην καρδιά. Το μικρό στον κόσμο είναι σημαντικό για μεγάλο χρονικό διάστημα.

Erich Maria Rellock "Triumphal Arch" ---

Πάρτε κάτω από τη βροχή, μπορείτε να εξαγάγετε ένα χρήσιμο μάθημα από αυτό. Εάν η βροχή αρχίσει απροσδόκητα, δεν θέλετε να βρεθείτε υγρό και έτσι τρέχετε κάτω από το δρόμο στο σπίτι σας. Αλλά αφιερώνοντας στο σπίτι, παρατηρείτε ότι είναι ακόμα υγρό. Εάν αποφασίσετε από την αρχή να μην επιταχύνετε ένα βήμα, θα προωθήσετε, αλλά δεν θα πατήσετε. Πρέπει επίσης να ενεργήσετε με άλλες παρόμοιες συνθήκες.

Yamamoto Tsungomo - Hagakure. Βιβλίο Samurai.



Αύριο θα είναι αυτό που πρέπει να είναι

Και δεν θα υπάρξει τίποτα για το τι πρέπει να είναι -

Μην παίζετε.

Εάν δεν υπάρχει κανένας κόσμος μέσα μας, είναι άχρηστο να το ψάξετε έξω.

Δεν επιβαρύνονται με ανησυχίες -
Απολαμβάνοντας τη ζωή.
Μην χαίρεσαι,
Η απώλεια δεν θα είναι λυπηρό επειδή ξέρει
αυτή η μοίρα δεν είναι σταθερή.
Όταν δεν σχετίζονται πράγματα
Η Solne γνωρίζει την ηρεμία.
Εάν το σώμα δεν ξεκουραστεί από την τάση,
Είναι φθορά.
Εάν το πνεύμα είναι για πάντα σε ανησυχίες,
Εξασθενεί.

Zhuang tzu ---

Εάν ρίχνετε ένα ραβδί ενός σκύλου, θα κοιτάξει αυτό το ραβδί. Και αν ρίξετε ένα ραβδί του λιονταριού, τότε, χωρίς να σπάει, κοιτάξτε το ρίχτη. Αυτή είναι μια επίσημη φράση, η οποία τους είπαν κατά τη διάρκεια διαφορών στην αρχαία Κίνα, αν ο συνομιλητής άρχισε να προσκολλώνεται σε λέξεις και σταμάτησε να βλέπει το κύριο πράγμα.

Κάνοντας εισπνεύσει, χαλαρώω το σώμα και το μυαλό μου.
Κάνοντας εκπνοή, χαμογελάω.
Μείνετε στο παρόν, ξέρω ότι αυτή η στιγμή είναι εκπληκτική!

Επιτρέψτε μου να αναπνέω γεμάτα στήθη και να μην οδηγείτε τον εαυτό σας στο πλαίσιο.

Τη δύναμη εκείνου που πιστεύει στην εξουσία του.

Εργαστείτε τη συνήθεια της παρακολούθησης της ψυχικής συναισθηματικής σας κατάστασης με αυτοεπιοπήματος. Για να αναρωτηθείτε τακτικά: "Είναι η ηρεμία αυτή τη στιγμή;" - Αυτή είναι μια ερώτηση που είναι χρήσιμη για να αναρωτηθείτε τακτικά. Μπορείτε ακόμα να ρωτήσετε: "Τι συμβαίνει σε μένα αυτή τη στιγμή;"

Eckhart Tollet.

Η ελευθερία είναι η έλλειψη ανησυχίας. Συνειδητοποιώντας ότι δεν μπορείτε να επηρεάσετε τα αποτελέσματα, μην δώσετε προσοχή στις επιθυμίες και τους φόβους σας. Αφήστε τους να έρθουν και να πάνε. Μην τα τροφοδοτείτε με ενδιαφέρον και προσοχή. Στην πραγματικότητα, τα πράγματα γίνονται μαζί σας, όχι από εσάς.

Nisargadatta maharaj


Το πιο ήρεμο και ισορροπημένο πρόσωπο, τόσο πιο ισχυρό όσο και το μεγαλύτερο θα είναι η επιτυχία του σε καλά και άξια πράγματα. Η ατομικότητα του νου είναι ένας από τους μεγαλύτερους θησαυρούς της σοφίας.


Η βάση όλων της σοφίας είναι ηρεμία και η υπομονή.

Σταματήστε το άγχος σας και στη συνέχεια μπορείτε να δείτε ένα υπέροχο μοτίβο ...

Όταν το μυαλό έρχεται στην ειρήνη, αρχίζετε να εκτιμάτε το φως του φεγγαριού και τον άνεμο του ανέμου και καταλαβαίνετε ότι δεν υπάρχει ανάγκη για μια κοσμική ανάγκη.

Κάνετε ειρήνη στην ψυχή σας, και γύρω σας θα σωθούν.

Στην πραγματικότητα, απλά θέλετε την ειρήνη και την αγάπη. Από αυτά, βγήκες, θα επιστρέψετε σε αυτούς και είναι. ΠΑΠΑΔΖΗ.


Οι πιο όμορφοι και υγιείς άνθρωποι είναι οι άνθρωποι των οποίων οι άνθρωποι δεν ενοχλούν.


Ο υψηλότερος βαθμός ανθρώπινης σοφίας είναι η ικανότητα να διατηρεί την ηρεμία αντίθετη προς τις εξωτερικές καταιγίδες.



Δεν είστε συνδεδεμένοι με τις εμπειρίες μας, αλλά αυτό που τους ανέβηκε.

Μην μιλάτε λύσεις. Καλά αναστέλλει όλα "για" και "ενάντια". Σχεδόν κάθε άτομο έχει έναν ουράνιο οδηγό, το δεύτερο "Εγώ". Σκεφτείτε και ρωτήστε τον και αν πρέπει να γίνει ή όχι;! Μάθετε να παρατηρήσετε, δείτε αόρατο, προβλέπει την κατάσταση.

Όταν σκεφτόμαστε τα ορεινά δάση και τα ισχυρότερα πλεονεκτήματα, η καρδιά, εμπνευσμένη από την κοσμική λάσπη, καθαρίζεται σταδιακά. Όταν διαβάζετε στους αρχαίους Canons και κοιτάξτε τις εικόνες των παλιών πλοιάρχων, το πνεύμα της κοσμικής χυδαιότητας δεν αρκεί. Χονγκ Ζάκκεν, η γεύση των ριζών.


Η σοφία έρχεται με την ικανότητα να είναι ηρεμία. Απλά κοιτάξτε και ακούστε. Τίποτα περισσότερο χρειάζεται. Όταν είσαι μόνος, όταν κοιτάς απλά και ακούτε, ενεργοποιεί μέσα σας ελεύθερη από τις έννοιες της ορθολογικότητας. Αφήστε την Ειρήνη να κατευθύνει τα λόγια και τα πράγματα σας.

Eckhart Tollet.


Ποτέ δεν θα μπορέσουμε να επιτύχουμε την ειρήνη του μυαλού στον έξω κόσμο μέχρι να πετύχουν στην εσωτερική.

Η ουσία της ισορροπίας δεν είναι να προσκολληθεί.

Η ουσία της χαλάρωσης δεν είναι να κρατήσει.

Η ουσία της φυσικότητας δεν είναι να καταβάλει προσπάθεια.

Αυτός που δεν απολαμβάνει και ο καθένας θέλει κακό, έφθασε σε ισορροπία. Για αυτόν, ολόκληρος ο κόσμος γεμίζει με ευτυχία.

Έτσι, αυτή και πάλι η ζωή ανθίζει, Clowd και γεμάτη με συναρπαστική χαρά και ευτυχία, απλά πρέπει να σταματήσετε ... να σταματήσετε και να αντέξετε οικονομικά να διαλύσετε με ευχαρίστηση ...

Μην ανησυχείτε για το μέλλον σας, να είστε μόνοι τώρα και όλα θα πέσουν στη θέση τους.

Εάν το νερό δεν βασανιστεί, από μόνη της θα εξαφανιστεί. Εάν ο καθρέφτης δεν είναι βρώμικος, αυτό από μόνο του θα αντικατοπτρίζει το φως. Η ανθρώπινη καρδιά δεν μπορεί να γίνει καθαρή. Εξαλείψτε τι μολύνει, και η ίδια η καθαρότητα του θα εκδηλωθεί. Η χαρά δεν χρειάζεται να ψάξει για τον εαυτό σας. Εξαλείψτε τι σας προκαλεί, και η ίδια η χαρά θα αντέξει την ψυχή σας.


Μερικές φορές αφήνουν μόνο όλα μόνο ...

Στο κέντρο του τυφώνα είναι πάντα ήσυχο. Να είστε αυτός ο ήσυχος χώρος στο κέντρο, ακόμη και αν οι στροβιλιστές είναι σκληρές.

Είστε ο ουρανός. Οτιδήποτε άλλο είναι μόνο ο καιρός.

Μόνο σε ήρεμα νερά, τα πράγματα αντικατοπτρίζονται στην άβολη.

Μόνο η ηρεμία συνείδηση \u200b\u200bείναι κατάλληλη για την αντίληψη του κόσμου.

Όταν δεν ξέρετε τι να κάνετε, - περιμένετε για λίγο. Κρύβω. Ζουν όσο ζουν. Το σήμα θα εμφανιστεί αργά ή γρήγορα. Το κύριο πράγμα είναι να γνωρίζετε ότι περιμένετε και είστε έτοιμοι να συναντήσετε τι περιμένετε. Louis Rivera

Μην ανησυχείτε για το μέλλον σας, να είστε μόνοι τώρα και όλα θα πέσουν στη θέση τους.


Η ηρεμία σας στερεί από τους εχθρούς σας. Στην ειρήνη, δεν υπάρχει φόβος ούτε υπερβολικός θυμός - μόνο η πραγματικότητα, καθαρίζεται από στρέβλωση και παρέμβαση συναισθηματικών εκρήξεων. Όταν είστε ήρεμοι - είστε πραγματικά ισχυροί.

Ως εκ τούτου, οι αντίπαλοί σας θα προσπαθήσουν πάντα να σας φέρουν έξω από αυτό το κράτος - να εμπνεύσουν τον φόβο, σπείρουν αμφιβολίες, προκαλούν θυμό. Η εσωτερική κατάσταση συνδέεται άμεσα με την αναπνοή. Ποια κατάσταση θα χτυπάτε, αμέσως χαλαρώνοντας την αναπνοή σας - το πνεύμα χαλάει κάτω.


Το κύριο πράγμα στην πνευματική ζωή είναι να κρατήσει μια καρδιά στον κόσμο.

Πρέπει να εμπιστευτείτε τη ζωή.
Περιττό να αναθέσει τη ροή της χωρίς φόβο, επειδή η ζωή είναι απεριόριστα πιο σοφός.
Θα σας κοστίσει ακόμα με τον δικό του τρόπο, μερικές φορές αρκετά σκληρά,
Αλλά τελικά θα καταλάβετε ότι ήταν σωστό.

Να είστε μόνος τώρα, και όλα θα πέσουν στη θέση τους.

Το πνεύμα σας δεν πρέπει να ανησυχείτε, η κακή λέξη δεν πρέπει να σπάσει τα χείλη σας. Πρέπει να παραμείνετε καλοπροαίρετοι, με μια καρδιά, την πλήρη αγάπη που δεν περιέχει μια μυστική κακία. Και ακόμη και οι δυσκολίες, θα πρέπει να καλύψετε με εραστές, γενναιόδωρες σκέψεις, βαθιά και απεριόριστα, καθαρισμένα από όλο το θυμό και το μίσος. Αυτός είναι ο τρόπος που πρέπει να ενεργήσουν οι μαθητές που οι μαθητές μου.

Μόνο ηρεμία ύδατα αντανακλά σωστά τον ουρανό.

Ο καλύτερος δείκτης του επιπέδου της συνείδησης είναι η ικανότητα να χαλαρώσετε σε ζωτικές δυσκολίες.

Άγνωστος άνθρωπος τραβούν κάτω, ενώ ένας συνειδητός άνθρωπος ανεβαίνει όλο και περισσότερο.

Eckhart Tolna.


Κάθονται ήρεμα, και θα καταλάβετε πόσο έντονη φροντίδα. Συγγνώμη λίγο και θα καταλάβετε πόσο κενός είναι η καθημερινή ομιλία. Εξαίρεση τη συνηθισμένη ταλαιπωρία, και θα καταλάβετε πόσες αντοχές οι άνθρωποι στρίβουν μάταια. Chen Jizhu.


Η ηρεμία μας βοηθά να βρούμε μια διέξοδο από τις πιο δύσκολες καταστάσεις.

Έχω ξεσπάσει στην υπομονή; ... Είμαι ξανά επιρροή!)

3 ήρεμες δευτερόλεπτα

Πολύ ήρεμα σκέφτεστε περίπου τρία δευτερόλεπτα για να καταλάβετε τα πάντα.

Αλλά πού να τα πάρετε, αυτά πραγματικά τρία ήρεμα δευτερόλεπτα; Είμαστε πολύ ενθουσιασμένοι από τις φαντασιώσεις μας για να μείνετε τουλάχιστον κατά μια στιγμή.


Έχετε δει ποτέ μια βελανιδιά σε μια κατάσταση στρες ή δελφίνι, που διαμένουν στη ζοφερή διάταξη του Πνεύματος, ένας βάτραχος που πάσχει από μια χαμηλή αυτοεκτίμηση, μια γάτα, η οποία δεν μπορεί να χαλαρώσει ή το πουλί επιβαρύνθηκε από την προσβολή; Θα μάθω από την ικανότητά τους να βάζουν το παρόν.
Eckhart Tollet.

Μην βιαζεσαι. Κάθε οφθαλμός αναβοσβήνει ταυτόχρονα. Μην πιέζετε το οφθαλμό να γίνει λουλούδι. Μην κάμπτεστε τα πέταλα. Είναι απαλές. Θα τα ρίξετε. Περιμένετε και θα αποκαλυφθούν. Sri Sri Ravi Shankar

Μην λατρεύετε έναν γενειοφόρο άνδρα στον ουρανό ή ένα είδωλο στο βιβλίο. Η λατρεία εισπνέει και εκπνεύσει, το χειμώνα αεράκι χαϊδεύοντας το πρόσωπό σας, το πρωινό πλήθος των ανθρώπων στο μετρό, απλά αισθάνεται ότι ζωντανός, ποτέ δεν ξέρει τι έρχεται.Παρατηρήστε τον Θεό στα μάτια ενός ξένου, την πρόνοια στην καταστραμμένη και συνηθισμένη. Λατρεύω τη Γη στην οποία στέκεστε. Κάνετε κάθε μέρα ο χορός, με δάκρυα στα μάτια μου, σκέπτεται θεία ανά πάσα στιγμή, παρατηρήστε το απόλυτο σε όλα σχετικά συγγενή και αφήστε τους ανθρώπους να σας καλέσουν τρελοί. Αφήστε τους να γελάσουν και να συγκεντρωθούν.

Jeff Foster

Η υψηλότερη δύναμη δεν είναι η ικανότητα να νικήσει τους άλλους και τη δυνατότητα να γίνει ένας με τους άλλους.

Sri chinmi

Δοκιμάστε, τουλάχιστον σε μικρά, μην φέρετε το μυαλό σας.
Κοιτάξτε τον κόσμο - απλά κοιτάξτε.
Μην πείτε "όπως", "δεν σας αρέσει". Μην πεις τιποτα.
Μην προφέρετε λέξεις, απλά κοιτάξτε.
Το μυαλό θα αισθάνεται ταλαιπωρία.
Το μυαλό θα ήθελε να πει τίποτα.
Απλά λέτε το μυαλό:
"Σιωπηλός, επιτρέψτε μου να δω, θα κοιτάξω μόνο" ...

6 σοφούς Σοβιέτ από το Chen Jizh

1. Καθίστε ήρεμα, και θα καταλάβετε πόσο έντονη ανησυχία.
2. Συγνώμη λίγο και θα καταλάβετε πόσο κενός είναι η καθημερινή ομιλία.
3. Εξαίρεση τη συνηθισμένη ταλαιπωρία, και θα καταλάβετε πόσες αντοχές οι άνθρωποι στρίβουν μάταια.
4. Σκουπίστε την πύλη σας και θα καταλάβετε πώς οι επανέλθει ομόλογα της χρονολόγησης.
5. Έχω λίγες επιθυμίες, και θα καταλάβετε γιατί τέτοιες πολλές ασθένειες της ανθρώπινης φυλής είναι τόσο πολυάριθμες.
6. Να είστε ανθρωπογενείς και θα καταλάβετε πόσο άυγα συνηθισμένοι άνθρωποι.

Ελευθερώστε το μυαλό σας από τις σκέψεις.
Αφήστε την καρδιά σας να ηρεμήσει.
Παρακολουθήστε ήρεμα τον κόσμο των αναταραχών
Παρακολουθήστε πώς τα πάντα πέφτουν ...

Ένα ευτυχές πρόσωπο είναι πολύ εύκολο να μάθετε. Φαίνεται να ακτινοβολεί την αύρα της ηρεμίας και της ζεστασιάς, κινείται αργά, αλλά έχει χρόνο παντού, μιλάει ήρεμα, αλλά ο καθένας τον καταλαβαίνει. Το μυστικό των ευτυχισμένων ανθρώπων είναι απλό είναι η έλλειψη έντασης.

Εάν καθίσετε κάπου στα Ιμαλάια και η σιωπή σας περιβάλλει - αυτή είναι η σιωπή των Ιμαλαΐων, όχι η δική σου. Πρέπει να βρείτε τα δικά σας Ιμαλάια μέσα ...

Πληγές που προκαλούνται από σκέψεις, θεραπεύονται περισσότερο από οποιοδήποτε άλλο.

Joan Rowling, "Harry Potter και η τάξη του Φοίνιξ"

Η σοφία έρχεται με την ικανότητα να είναι ηρεμία.Απλά κοιτάξτε και ακούστε. Τίποτα περισσότερο χρειάζεται. Όταν είσαι μόνος, όταν κοιτάς απλά και ακούτε, ενεργοποιεί μέσα σας ελεύθερη από τις έννοιες της ορθολογικότητας. Αφήστε την Ειρήνη να κατευθύνει τα λόγια και τα πράγματα σας.

Eckhart Tolle "Ποια σιωπή λέει"

Το πιο ήρεμο και ισορροπημένο πρόσωπο, τόσο πιο ισχυρό όσο και το μεγαλύτερο θα είναι η επιτυχία του σε καλά και άξια πράγματα. Η ατομικότητα του νου είναι ένας από τους μεγαλύτερους θησαυρούς της σοφίας.

James Allen.

Όταν ζείτε με τη συγκατάθεσή σας, είστε σε θέση να συναντήσετε με άλλους.

Ανατολική σοφία -

Καθίστε - και κάθονται τον εαυτό σας. Πηγαίνετε - και πηγαίνετε τον εαυτό σας.
Το κύριο πράγμα - Μην παίζετε στην πλάτη.

Αλλάξτε τη στάση απέναντι στα πράγματα που ανησυχείτε, και θα είστε ασφαλείς από αυτούς. (Mark Azeri)

Να μετακινήσετε την προσοχή στο ηλιακό πλέγμα. Προσπαθήστε να φανταστείτε ότι ένα μικρό φως του ήλιου ανάβει μέσα σας. Αφήστε τον να φλερτάρει, να γίνει όλο και πιο δυνατός. Αφήστε τις ακτίνες του να είναι άρρωστοι. Αφήστε τον ήλιο να ενισχύσει ολόκληρο το σώμα με τις ακτίνες του.

Η αρμονία είναι η ομαλότητα σε όλα. Αν θέλετε να διαμαρτυρηθείτε, να σηκώσετε έως και 10 και να "εκτελέσετε" τον ήλιο.

Ηρεμία, μόνο ηρεμία :)

Ενδιαφέρεστε για το τι συμβαίνει μέσα σας, όχι λιγότερο από αυτό που σας περιβάλλει. Εάν στο εσωτερικό κόσμο όλα είναι εντάξει, τότε στα εξωτερικά όλα θα πέσουν σε ισχύ.

Eckhart διόδια ---

Ένας ανόητος και ο άγνοια έχουν πέντε θα πάρουν:
Δεν υπάρχει λόγος
Μιλήστε χωρίς ανάγκη
Αλλαγή άγνωστου για το τι
παρεμβαίνουν στο γεγονός ότι δεν απασχολούν
Και δεν ξέρουν πώς να διακρίνουν ποιοι τους ευχόμαστε καλά και ποιος είναι κακός.

Ινδική παροιμία ---

Τι αφήνει, ας πάει.
Τι έρχεται, ας έρθει.
Δεν έχετε τίποτα και ποτέ δεν είχε, εκτός από τον εαυτό σας.

Εάν θα μπορούσατε απλά να αποθηκεύσετε την εσωτερική σιωπή, χωρίς να μολυνθεί με αναμνήσεις και προσδοκίες, θα μπορούσατε να δείτε το υπέροχο σχέδιο των γεγονότων. Αυτό είναι το άγχος σας δημιουργεί χάος.

Nisargadatta maharaj ---

Υπάρχει μόνο ένας τρόπος για την ευτυχία - αυτή είναι μια παύση του άγχους για αυτά τα πράγματα που δεν είναι στη δύναμη της θέλησής μας.

Epical ---

Έχοντας χάσει τις αισθήσεις της δικής τους σημασίας, γίνουμε άτρωτοι.

Για να είμαι ισχυρός, πρέπει να είστε σαν νερό. Δεν υπάρχουν εμπόδια - ρέει. Φράγμα - θα σταματήσει. Το φράγμα θα σπάσει - θα ρέει ξανά. Σε ένα δοχείο τεσσάρων βαθμών, είναι quadrigilane. Σε γύρο - έχει στρογγυλοποιηθεί. Επειδή είναι τόσο συμβατό, είναι πιθανότερο και τα περισσότερα και τα περισσότερα.

Ο κόσμος είναι παρόμοιος με το σταθμό, όπου είμαστε για πάντα που περιμένουμε, τότε βιάζουμε.

Όταν το μυαλό και τα συναισθήματά σας επιβραδύνουν την κίνηση τους πριν από τον καρδιακό παλμό, εισάγετε αυθόρμητα την αρμονία με το κοσμικό ρυθμό. Αρχίζετε να αντιλαμβάνεστε τον κόσμο με τα θεϊκά μάτια, παρακολουθώντας τα πάντα συμβαίνουν από μόνη της και ταυτόχρονα. Έχοντας διαπιστώσει ότι όλα είναι ήδη λατρευμένα με το νόμο του σύμπαντος, έρχεστε να καταλάβετε ότι δεν είστε διαφορετικοί από τον κόσμο και τους κύριους του. Αυτή είναι η ελευθερία. Μάγας

Ανησυχούμε πάρα πολύ. Πάρα πολύ σοβαρά αντιλαμβάνεται. Είναι απαραίτητο να εφαρμοστεί σε όλα τα ευκολότερα. Αλλά με το μυαλό. Χωρίς νεύρα. Το κύριο πράγμα που πρέπει να σκεφτείς. Και μην κάνετε ανοησίες.

Τι μπορείτε να αντιληφθείτε ήρεμα όχι πλέον να σε διαχειριστείτε ...

Πουθενά να βρεθεί η ειρήνη ενός που δεν το βρήκε από μόνο του.

Να είναι θυμωμένος και ενοχλημένος - δεν υπάρχει παρά να τιμωρήσετε τον εαυτό σας για άλλη ηλίθια.

Είστε ο ουρανός. Και τα σύννεφα είναι αυτά που συμβαίνουν, έρχεται και πηγαίνει μακριά.

Eckhart Tollet.

Ζήστε, κρατώντας την ειρήνη. Ελάτε την άνοιξη και τα λουλούδια ανθίζουν τον εαυτό τους.


Είναι γνωστό ότι ο άνθρωπος μοιάζει, τόσο λιγότεροι άνθρωποι τον αντιβαίνουν και υποστηρίζουν μαζί του. Αντίθετα, αν ένα άτομο υπερασπιστεί την άποψή του με το Hotness, υποστηρίζεται και βίαια να αντισταθεί.

Μη βιάζεσαι. Φάτε για μια ώρα φαγητού, και η ώρα θα έρθει- Πηγαίνετε στο δρόμο.

Paulo Coelho "Alchemist"

Αποθήκευση - σημαίνει να δεχτείτε τι είναι. Έτσι είστε ανοιχτοί στη ζωή. Η αντίσταση είναι ένας εσωτερικός σφιγκτήρας .... Έτσι είστε τελείως κλειστές. Τι θα κάνατε στην κατάσταση της εσωτερικής αντίστασης (η οποία μπορεί επίσης να ονομαστεί αρνητικότητα), θα προκαλέσει ακόμα μεγαλύτερη εξωτερική αντίσταση και το σύμπαν δεν θα είναι στο πλευρό σας, η ζωή δεν θα σας βοηθήσει. Το φως δεν μπορεί να διεισδύσει μέσα μέσα από κλειστά παντζούρια. Όταν είστε εσωτερικά κατώτεροι και σταματήστε τον αγώνα, ανοίγει μια νέα μέτρηση της συνείδησης. Εάν η ενέργεια είναι δυνατή ... θα επιτευχθεί ... Υποστηριζόμενη από το δημιουργικό μυαλό ... με το οποίο γίνετε ένας σε μια κατάσταση εσωτερικού ανοίγματος. Και τότε οι περιστάσεις και οι άνθρωποι αρχίζουν να σας βοηθούν, να γίνουν μαζί σας ταυτόχρονα. Ευτυχισμένες συμπτώσεις συμβαίνουν. Όλα προσθέτουν στην εύνοια σας. Εάν η ενέργεια είναι αδύνατη, είστε σε ειρήνη και εσωτερική ειρήνη, η οποία έρχονται με άρνηση καταπολέμησης.

Eckhart Tolna Νέα Γη

Προσφυγή "ηρεμία κάτω" Για κάποιο λόγο είναι πάντα ενοχλητικό.Ένα άλλο παράδοξο.Συνήθως μετά από μια τέτοια κλήσηΚανείς δεν σκέφτεται να ηρεμήσει.

Bernard Verber Mirror Cassandra

Όποιος έχει αναπτύξει τον εαυτό του, νίκησε τους εχθρούς.

Σιλουάν Άθως

Καθαρίστε κάποιον που κρατά τον Θεό στον εαυτό του.


Όταν υποστηρίζετε έναν ανόητο, είναι πιθανότατα το ίδιο.

Η πραγματική δύναμη του ανθρώπου δεν είναι στις ριπές, αλλά στην παράνομη ειρήνη του μυαλού.

Ο υψηλότερος βαθμός ανθρώπινης σοφίας είναι η δυνατότητα προσαρμογής στις περιστάσεις και να διατηρηθεί η ηρεμία αντίθετη προς τις εξωτερικές καταιγίδες.

Τα συναισθήματα και οι σκέψεις θα εξαφανιστούν, αν δεν τους δώσετε προσοχή. Lama ola nidal

Ποτέ δεν θα μετανιώσετε τι κατάφεραν να σκίσουν.
--- Ανατολική σοφία ---

Αξίζει να αγωνιστεί για μια τέτοια κατάσταση συνείδησης στην οποία όλα τα γεγονότα θα αντιληφθούν ουδέτερα.