Мирна и ред, општата ментална рамнотежа е посакуваните состојби на секое лице. Нашиот живот главно поминува на замав - од негативни емоции во еуфорија и назад.

Како да ја пронајдете и задржите точката на рамнотежа, така што светот се смета позитивно, смирено, ништо не се вознемири, не плашиш, а сегашниот момент донел инспирација и радост? Дали е можно да се најде долга искрена рамнотежа? Да, можеби! Покрај тоа, вистинската слобода доаѓа со смиреност и едноставна среќа за живеење.

Ова се едноставни правила, и тие работат строго. Вие само треба да престанете да размислувате како да ги промените и почнете да ги применувате.

1. Престанете да прашувате: "Зошто ми се случи?" Запрашајте се на друго прашање: "Што се случило прекрасно? Што е добро да се претвори за мене? " Добро, сигурно, само треба да го видиш. Секој проблем може да резултира со вистински подарок. Повеќе Ако го сметате за шанса, а не како казна или неправда.

2. Да се \u200b\u200bразвие благодарност. Секоја вечер ги изневерува резултатите: што можам да кажам "Ви благодарам" до изминатиот ден. Ако е изгубен мир на умот - се сеќавам на добрите работи што ги имате, и за она што можете да му се заблагодарите на животот.

3. Вчитајте го телото со вежбање. Запомнете дека мозокот најмногу активно произведува "хормони на среќа" (ендорфини и енкефалини) токму за време на физичката обука. Затоа, ако имате надминување на проблемите, анксиозноста, несоница - излегувајте надвор и одете неколку часа. Брз чекор или трчање ќе биде одвлечен од тажни мисли, тие ќе го подигнат мозокот со кислород и ќе го подигнат нивото на позитивни хормони.

4. Работете го "Слободното држење" и излезете со среќна поза. Телото знае како да помогнете одлично кога треба да го вратите менталната рамнотежа. Таа "се сеќава на" чувството на радост ако само го исправиш грбот, направи рамената, ќе дише и ќе се насмее. Свесно држете се некое време во таква положба, и ќе видите дека мислите во главата стануваат посмирени, уверени и среќни.

5. Вратете се на државата "Еве и сега". Лесно вежбањето помага да се ослободите од алармот: погледнете наоколу, фокусирајте се на она што го гледате. Започнете ментално "глас" слика, вметнувајќи колку зборови "сега" и "тука". На пример: "Сега одам на улица, сонцето сјае овде. Сега гледам човек, тој носи жолти цветови ... ", итн. Животот се состои само од моментите "Сега", не заборавајте за тоа.

6. Не ги преувеличувајте вашите проблеми. Впрочем, ако дури и ебам блиску до моите очи, тоа ќе се здобие со големината на слонот! Ако некое искуство ви се чини непремостливо, мислам, како да поминале десет години ... Колку проблеми веќе биле порано - ги одлучивте сите. Затоа, оваа неволја ќе биде, не се нурнете во него со главата!

7. Се смееш повеќе. Обидете се да најдете нешто смешно во сегашната состојба на работите. Тоа не функционира - тогаш само да најде причина за искрена смеа. Погледни го смешниот филм, се сеќавам на смешен случај. Моќта на смеа е само неверојатна! Искрена рамнотежа често се враќа по добра доза на хумор.

8. Прости повеќе. Истражувањата се како тешки, лоши мирисни камења што сте насекаде со вас. Која мирна смиреност може да биде со таков товар? Затоа, не го држи злото. Луѓето се само луѓе, не можат да бидат совршени и секогаш да носат само добро. Толку прости на сторителите и прости.

10. Разговор повеќе. Секоја болка скриена внатре е множи и носи нови тажни овошја. Затоа, споделете ги вашите искуства, разговарајте со нив со најблиски, побарајте ја нивната поддршка. Не заборавајте дека лицето не е наменето за осаменост. Менталната рамнотежа може да се најде само во блиски односи - пријателски, сакани раѓања.

11. Молете се и медитираат. Не дозволувајте лошите зло мисли да ве контролираат, сее паника, болка и иритација. Променете ги на кратки молитви - апел до Бог или медитација - без размислување. Останете на непотребен внатрешен разговор поток. Ова е основа на еден вид и стабилна ментална состојба.

Кога се чини дека следното ниво е донесено, тие дефинитивно ќе ползат сенки и ќе организираат проверка дали рамнотежата и присуството на Духот остануваат за време на нивните танци.

Реакцијата на сенката го тресе нишалото на егото и дава немилосрдна вистина: билансот се протегал како претпазлив јаже и треба да се закани дека ќе стигне за да го привлече храбрата во бездната од минатото.

Вистинската рамнотежа е недостатокот на набљудување со зависноста: пребарувањето за нешто не е во ред овде.

"Сè, како и обично", вели внатрешниот контемнери, дури и ако заканите се подигнале околу чума или суровини, "само овие луѓе се повредени и треба да бидат свесни за нивниот пат".

Но, ако постојат и други реакции, тогаш патот не е патуван и завршувањето на сцената е сè уште напред.

- Што да правам? - Вие сте само на почетокот на патувањето.
- Подготвен сум да победам до смрт! - Поминавте една четвртина од патот.
- Ми се допаѓа таква авантура! - Половина од патот е веќе помина.
"Оди до мене, те спаси", три четвртини од начинот на кој поминавте ".
- Како сум благодарен за она што точно го! - До крајот на нивото остави 2/10 начини.
- патник, каде го одржувате патот и што сакате да ја постигнете вашата агресија? - Го поминавте ова ниво и го положивте испитот за заканувачка сенка.

Има многу љубов и многу уметност во сенката. Како добар учител, таа игра совршено во Тирана, жртва и спасител за да ја провери вашата рамнотежа. Впрочем, на јазикот на гејмерите: рамнотежата е нивото на Бога.

© Марк Ифреимов

********

Услови на смиреност

Подгответе се да одите.

Луѓето кои ја туркаат главата, манипулираат, обвинети, заразени, несреќни, кои ви се луди, лишувајќи емотивен спокојство.

Да биде еднакво.

Еднаквоста во која сите се одговорни за нивниот живот, и не очекува дека некој ќе го направи тоа среќен или ќе ми каже како да живеам.

Бидете внимателни.

Не се дава во жалби и манипулација. Односот е присуството во животот на друг, а не на спасението на тоа. Не збунувајте со директно барање за помош. Тие прашуваат - помогне колку што е можно за вас.

Подгответе се да се преселите.

Не се вклучени во расклопување и обвиненија. Не оправдувај. Ако не сте во право - се извинувате. Тоа е доволно. Ако имало во голема мера оштетено од сетилата на едно лице - прашајте што можете да направите за да ја блокирате вината? Ако одговорот не следи, бидете подготвени да се оддалечите. Ова веќе не е за твојата вина, туку за неговите обвиненија.

Биди тешко.

"Ќе го фалат - не се радувај. Кара - немојте да се мешате "(в). Не можете да победите или изгубите цело време. Вие не можете дури и да споделите сè за губење и победа. Пронајдете го она што го научиле и дека новиот открил во себе, благодарение на овој настан. Одете на свој начин, солиден чекор.

Да помине.

Ние поминуваме од конфликтите на другите луѓе, озборувања, категорични, евалуација, злоба, одмазда, лелека, етикети, завист. Немојте да се затегнете во сето ова, не поддржувајте, не трошете време ... Одете наоколу ...

Бидете подготвени да учествувате.

Ние продолжуваме да се запознаваме со јазичните иновации на стандардот C ++ 17. Во оваа статија, ние ќе погледнеме што ќе го наречам продолжување на јазикот. Оние. Не сосема нов, од гледна точка на функционалноста, ние нема да ги видиме работите тука - туку да го доведеме стариот функционален на поприфатлива состојба. Овде ќе погледнеме: што се променило со постапката за извршување на потчинетост, кои се појавија нови гаранции во однос на исклучувањето на опционалното копирање, и дека новодоверба во Ламбда.

Ние го носиме ред

Многу C + + - програмери наидоа "интересни" задачи во кои се дава и да се постави контроверзниот код и праша: "Што ќе се изведе?". Еден од најчестите примери на таков код е следниот пример:

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

Таквиот "паметен" код се наоѓа и на мрежата и на интервјуата. Целта на ваквите прашања е да дознае колку е запознаено со карактеристиките на постапката за извршување на изразите во C ++.

Барем ова е декларирана цел. Точно, верувам дека во повеќето случаи лице кое бара такви прашања само сака да ја почувствува својата гордост. Знаејќи дека тоа ќе излезе како овој код е целосно опционален, бидејќи таков код едноставно не може да биде напишан. И ако не можете да напишете, тогаш зошто го прашувате жалителот за ова? Таквите прашања се соодветни за "пушењето", каде што познатите програмери разговараат за граничните испитувања; Тие не се соодветни за интервјуа. Јас препорачувам да се запознаат со мислите на Remond Chen на оваа тема: "Дали Peple пишува лудо код со повеќе преклопни несакани ефекти со директно лице?"

Но, ова е патолошки случај, кој е видлив за невооружениот изглед, и, како што споменав, нормален програмер никогаш нема да пишува. Но, има помалку очигледни случаи кои дури и искусни програмери можат да пишуваат. Ајде да погледнеме во такво парче код:

VAIL F2 () (STD :: String S \u003d "Но, слушнав дека работи, дури и ако не верувате во него"; s.replace (0, 4, ""). Ресеци (s.find ("Дури" ), 4, "само") .replace (s.find ("Дон"), 6, ""); тврдат (S \u003d\u003d "Слушнав дека работи само ако верувате во неа");););

Овој код е претставен во најновата книга на sturastrup "C + + програмскиот јазик на 4-то издание", во делот 36.3.6, и на прв поглед изгледа сосема погодно и точно. Но, ова е само на прв поглед, навистина нема гаранции дека горенаведениот код ќе ја формира очекуваната низа, и, соодветно, тврди дека нема да работи.

Како што гледаме, дури и C + + Creator направи грешка во такво мало парче код. Што вели тоа? Прво на сите, дека не треба да се справи со еден куп код во еден израз, во кој има многу работи од различни нешта. Првата верзија на овој код, која е претставена на истата страница на книгата е многу полесна и подобра:

Празнина f () (std :: string s \u003d "Но, јас слушнав дека тоа функционира дури и ако не верувате во него"; s.replace (0, 4, ""); s.replace (s.find (" Дури и "), 4," само "); s.replace (s.find (" Don "t"), 6, ""); тврдат (S \u003d\u003d "Слушнав дека работи само ако верувате во неа" ););)

Оваа опција не е само точна од гледна точка на извршувањето на програмата на програмата, исто така е полесно да се прочита. Но, ова не е единствениот заклучок што треба да го направиме е уште еден, кој за нас веќе ги направивме авторите на предлогот P0145R3: Со редоследот на извршување на изразите на изразите во C ++ Нешто не е во ред.

Стар ред

Пред да се свртиме кон предлогот и промените на кои доведе до тоа доведено, јас предлагам да се сетам на правилата на тековната. Ова ќе помогне во освежување во меморијата (и да научат за некој) зошто следниов пример погоре е лош C + + код (чисто од гледна точка на јазикот, а не естетиката). Значи, за разлика од многу други програмски јазици, во C ++, постапката за извршување на потсекцијата во изразите не е утврдена со стандардот и останува на составувањето компајлер. Се разбира, сè уште постои одреден редослед, но тука нема да ги опишам сите суптилности, бидејќи Постојат многу од нив. Важно е да се разбере дека, како по правило, 2 костуми од еден голем израз се извршуваат независно еден од друг неизвесно Нарачката (голем исклучок од ова правило е оператор на запирка ",").

На пример, ајде да го земеме нашиот прв пример: i \u003d i ++ + i ++; . Во голем израз постојат 4 мали потсекции: i, i ++, i ++ и јас ++ + i ++. Што гарантира стандард C ++ 14? Таа гарантира (expr.ass) дека и јас ++ изразите ќе се пресметаат пред да се пресмета нивната сума, како и фактот дека изразот што ќе се пресметува пред да му биде доделен резултатот од износот. Исто така потсетувам дека изразот i ++ ја враќа старата вредност i, а потоа се зголемува јас по единица (чекори). Ова, пак, значи дека изразот се смета за пресметан кога е добиена старата вредност.

Така, излегува дека компајлерот може да избере неколку начини за пресметување на целосниот израз: не е ограничено кога ефектот на ++ мора да се примени на i. Како резултат на тоа, можеме да добиеме различни вредности во I, што, се разбира, не е погоден насекаде, бидејќи Програмата треба да даде предвидлив резултат кој не зависи од совпаѓањето на компајлерот. На пример, нарачката може да биде вака:

    Пресметајте го првиот I, тоа е еднакво на 0.

    Пресметајте го вториот i, тоа е еднакво на 0.

    Запишете го резултатот од вториот прираст, добиваме i \u003d\u003d 1.

    Запишете го резултатот од првиот прираст, добиваме i \u003d\u003d 2.

    Пресметајте го лево од знакот на еднаквост.

    Пресметајте го износот: 0 + 0 \u003d\u003d 0.

    Снимање на резултатот од износот во i.

    Врати го резултатот од целосниот израз, т.е. Јас, што е 0.

Можете да ги извршите горенаведените чекори во било кој редослед што не ги прекршува гаранциите обезбедени од стандардот, и како резултат на тоа, ќе се добијат различни одговори.

Патем, можете да ја разгледате опцијата и поедноставна: i \u003d + i + i ++; . Овде, веднаш се гледа дека резултатот ќе биде различен во зависност од тоа што ќе се пресметува прво ++ I или i ++, бидејќи На првиот израз, несакани ефекти (зголемување на единицата) се јавуваат пред неговата пресметка.

Иако втората опција е позабележителна, и двајцата даваат т.н. излез т.н. неизвесно однесување (НП, англиско недефинирано однесување). Сите Matte C + + програмери се запознаени со овој термин, но малку е веројатно дека многумина ги знаат сите јазици C ++, каде што таквото однесување може да се манифестира. Ова е широка и прилично интересна тема со која можете да се обединат со една статија, па јас нема да престанам на ова. Всушност, таквата детална анализа на изразот не беше потребна, бидејќи Според стандардот (воведe.Execution / P15), нашиот израз е НП е затоа што во еден израз постојат две егзистенции кои го менуваат истиот скаларен објект, а постапката за промени не е дефинирана. Зошто ја дадов оваа анализа? Се обидов да покажам зошто НП се манифестира врз основа на тековните ограничувања за изрази, односно. Целта беше да се покаже дека со сегашните правила на стандардот не постои друг излез, како да се направи раце.

Сега да се свртиме кон нашиот втор пример, и ние ќе го сфатиме тоа не е така со него. Со цел да се поедностави разбирањето, ќе го намалам овој пример на таков израз: s.replace (s.find ("дури"), 4, "само"). Што имаме овде? Постои објект S, постои повик до STD :: String :: String :: замени функција, друга std :: string :: find функција, како и аргументи за овие функции. Какви гаранции ни дава стандард? Стандардот гарантира дека аргументите на функцијата ќе се пресметуваат пред да се нарече функцијата. Исто така, гарантира дека објектот за кој е извршена функцијата мора да се пресмета пред да биде предизвикана функцијата. Сето ова е разбирливо и логично. Точно, ние немаме други гаранции: не постои гаранција дека ќе се пресмета пред да се пресметаат аргументите на функцијата за замена и нема гаранции во врска со постапката за пресметување на овие најголеми аргументи. Затоа, можеме да добиеме таков пресметка: S.Find ("Дури"), "само", 4, S, S.replace (...). Или било кој друг, кој не ги прекршува претходно наведените стандардни гаранции.

Од горенаведениот текст, треба да ги отстраните 2 главните точки: 1) изразите од лево и десно од точката може да се пресметаат во било кој редослед, 2) Функцијата аргументи може да се пресметаат во било кој редослед. Врз основа на ова, сега треба да биде јасно зошто кодот од книгата на столче е неточен. Во изразот:

S.replace (0, 4, "") .replace (s.find ("дури"), 4, "само") .replace (s.find ("Don" t "), 6," ");

Двете пронајдоци ќе завршат пред да се изврши претходниот (во кодот). И можеби после. Друг прв може порано, а вториот подоцна - не е познато, бидејќи Редоследот не е дефиниран. Како резултат на тоа, овој код дава непредвидлив резултат, иако не е НП. Сепак, како што реков, таков код, компетентен програмер нема да напише, но фактот дека тој е во книгата на sturastrup не значи дека би сакал да напише - тој едноставно донесе пример за предизвици на синџири.

Покрај тоа, синџирот на предизвици може да не е толку очигледен. На пример, ова е кодот:

Std :: cout<< first << second;

Ова е исто така синџир на повици кои можат да бидат вака:

Std :: cout.Operator.<<(first).operator<<(second);

или како:

Оператор.<<(operator<<(std::cout, first), second);

Разликата не е фундаментална. Ако одеднаш изразот прво и второ, некако се однесува на еден објект, со еден од овие изрази го модифицира овој објект, тогаш голема шанса дека на излезот ќе добиеме нестабилен код или НП.

Друг интересен пример за горенаведената реченица:

СПБ :: Мапа. Речник; Речник \u003d Речник;

Да, кодот изгледа бесмислено, но што ќе даде како резултат? Дури и бесмислениот код треба да даде предвидлив резултат. За жал, C + + поглед на 2014 година само shrugs - не знам, велат тие.

Функции и оператори

Кога го испитавме синџирот на повици, ние допревме на друга интересна точка: Што всушност го претвора предизвикот STD :: cout<< first << second; . Как мы уже видели, в зависимости от того, чем являются first и second , мы можем получить либо цепочку вызовов функций-членов, либо же вложенные вызовы свободных функций. Но ведь в изначальном варианте записи у нас есть три выражения и 2 оператора << , у нас нет вообще никаких функций!

Малку е веројатно дека овој код предизвика проблеми од проблемите на C ++: сите порано или подоцна учат за преоптоварување на операторите и го земаат сето она што е соодветно, но постои една нијанса во овој преоптоварување. За да ја покажете оваа нијанса, ајде да напишеме таков шаблон:

Шаблон. << "first\n", value++) && (cout << "second\n", value++); }

Да, образецот не е од најкорисен и значаен, туку како што ќе го видиме сега, е доста индикативен. Ајде да ја наречеме функцијата CleverFun со аргумент INT тип, кој ќе доведе до инстанца на таква функција:

Bool cleverfun (int & вредност) (враќање (коцка<< "first\n", value++) && (cout << "second\n", value++); }

Кога ја повикувате оваа функција, излезот е загарантиран да биде:

ако првата вредност + + се враќа 0, инаку ќе биде вака:

ПРВАТА СЕКУНДА.

И ниеден друг, кој е очигледен: за & операторот постои строга гаранција краток спој (Kz, англиски. Краток спој) и вршење на левата страна надесно. Од друга страна, ако создадеме одреден тип на int за пребришување и постфикс оператор ++ и оператор &&, а потоа го вознемираме нашиот образец со него, ќе добиеме таква функција:

Int cleverfun (int & вредност) (враќање (cout<< "first\n", value.operator++(0)) .operator&&((cout << "second\n", value.operator++(0))); }

Јас не открив што да го свртам Cout Chell да не е отпадоци и не е премногу лесно да го прочитате кодот уште повеќе. Врз основа на претходното разгледано, не треба да бидете изненадени од фактот дека производството на овој код ќе се разликува од добиениот int. Овде можете исто така да добиете 2 опции, но тие ќе бидат други:

ПРВАТА СЕКУНДА.

Втора прва.

Очигледно, опцијата со една прва не можеме да ја добиеме поради фактот што CW за преоптоварени оператори не функционира. Ако внимателно го разгледувате овој пример, мора да разберете зошто: да извршите преоптоварен оператор && за тоа, аргументот мора да се пресмета (т.е. за збогум), покрај тоа, КЗ работи само кога изразот на левата е бул, кој во случај на редефинирање на операторот не може. Така, за CZ нема илузии не може да биде - тоа не е за преоптоварени оператори и нема.

Па, CZ не може да биде, така што не можеме да ја добиеме првата излезна опција (само прво), но дури и опцијата со две излезни линии може да се разликува, а можеби и не! Само помислете: го имаме истиот код во рамките на шаблонот на функцијата, кој со некои аргументи за дефиниција, се врши според едно правило, а за другите со сосема поинаков.

Сето ова е затоа што во C + + 14 гаранции за операторите и нивните операнди се разликуваат во зависност од тоа кои операнди се. Според стандардот, за интегрални типови, сите гаранции на операторите работат како што е опишано за нив во стандардот, но за преоптоварени оператори, правилата кои управуваат со повикот на функциите веќе работат. Оние. За преоптоварени оператори, изразот "е препишан" од страна на компајлерот на синџирот на функцијата на функцијата на функциите, а потоа, се применуваат правилата од стандардот, кои се дефинирани за таков синџир. Нема гаранции на операторите од стандардот за редефинирани оператори не работат.

Сите претходно опишани привлекуваат многу лоша слика: премногу во C + + хаос, во смисла на пресметување на изразите. Не е ни чудо што беше уморни од ставање на такви луѓе, и вечни изјави дека сето ова е потребно за некои митски оптимизации и не треба да се менува, престана да се смета за доволен изговор. Здрав разум триумфираше, и C ++ 17 добија некои промени во дел од насоките на нарачката во овој хаос. И какви промени се сега и размислете.

Нов поредок

Првата промена донесена од C + + 17 е да нарача извршување Оператори на постфикс, оператори за доделување, како и прекини оператори. Сега сите оператори на постфикс, како и операторите на претепаната смена, се изведуваат од лево кон десно, додека операторите за доделување се напротив, десно кон лево. Според "имплементацијата", во овој контекст, мислам на фактот дека изразот се пресметува (т.е. нејзиниот резултат е вратен), и сите несакани ефекти поврзани со него се фиксни (посветени).

За да објасниме како сега се нарачани изразите, земете пример од предлогот (во примерот подолу, изразот A прво се изведува, тогаш б):

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 конечно станува точен и секогаш ќе го даде точниот и очекуваниот резултат. Како што можете да видите, новите правила не го допреле редоследот на извршување на функциските аргументи во однос на едни со други: тие сè уште можат да се вршат во било кој ред, но нивното извршување не може да се вкрстува (интервенира) едни со други. Со други зборови, тие се наредени во однос на едни со други, но наредбата не е регулирана.

Сега да погледнеме неколку "интересни" примери, каде што во C + + 14 имавме НП, и во C + + 17 го нема. Ги цитирам овие примери исклучиво за вашата сопствена потрошувачка, не пишувам да ги мачиме луѓето на интервјуата.

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

Но, овие примери остануваат НП во нов стандард:

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

Бидејќи не се додадени правила со кои се регулира постапката за вршење на снимање на аритметичките оператори. Но, фактот дека НП изгуби од овие примери воопшто значи дека е време да го засити својот код таков - не. Секој од овие примери бара грижа и докази дека тоа не е НП. Оние. Секој програмер кој го видел таквиот код ќе биде принуден да запре, запомни (или се искачи во стандардот) и да се осигура дека тој го гледа вистинскиот код. Кодот не треба да биде "паметен", кодот мора да биде разбирлив. Покрај тоа, таквата комбинација на изрази дава малку, всушност.

Патем, внимателен читателот веројатно ја забележал линијата коцка<< i++ << i++ в вышеприведённых примерах, и если он не знает обо всех правилах и поверил автору, то он наверняка воспользовался такой логикой: пример переписывается как

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

после тоа, се однесуваат нови правила. , така што во кодот нема код НП. Таквото размислување изгледа логично, но не сосема точно. Всушност, сè е полесно: примерот е навистина "препишан" од страна на компајлерот на оној што го донесов, но редоследот на извршување е изграден за препишување! Оние. Според новите правила, преоптоварените оператори се предмет на правила за извршување за вградени оператори.Барем во однос на постапката за пресметување на снимањето. Затоа, врз основа на фактот дека левиот оператор<< вычисляется до правого у нас и нет НП во код.

Излегува дека ние веќе немаме несовпаѓање во кој редослед ќе биде погубен за вградени и преоптоварени оператори, и нашиот пример од минатиот дел:

Шаблон. Bool CreverFun (T & вредност) (Враќање (Cout<< "first\n", value++) && (cout << "second\n", value++); }

за било кој тип, прво секогаш ќе се повлече прво, а потоа второ. Инверзна излезна цел сега е исклучена од стандардот. Ова е дефинитивно многу важна иновација која ви овозможува да разговарате за кодот кој е напишан, а не она што ќе биде генерирано од него. Интересно е да се напомене дека оваа иновација довела до разликата помеѓу експлицитниот и имплицитниот предизвик на преоптоварениот оператор. Размислете за пример:

#INClude. Користење на именски простор STD; Класа someclass (пријател in 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.

Очигледно, со воведувањето на нов поредок, многу различни сложени изрази се појавија НП во минати стандарди, и сега се дозволени, но тоа не значи дека тие треба да почнат масовно да се појавуваат во кодот. Тоа не треба да биде само затоа што тие се комплициранИ сето она што е тешко да се разбере треба да се избегнува. Но, новите правила ни даваат не само можноста за повикување на функции од тип F (i ++, i ++), без страв да добијам неупрашана програма. Новите правила предаваат код на C ++ повеќе строгост и ред, благодарение на кои, вклучувајќи, ние сега можеме да напишеме сигурен код со синџир на ланец (експлицитно или имплицитно - без разлика).

Иако изразив некои "fi" во врска со кодот од книгата на столицата, јас сум далеку од противник на синџир предизвици, и ако го погледнете со современиот код, напишано користејќи императивни јазици, тогаш можеме да видиме дека содржи повеќе и повеќе Синџири (на пример, LINQ и TAST + континуирано од C #, или Lodash / Delisscore и ветува + потоа од JS). C ++, исто така, оди во оваа насока, и наскоро можеме да ги видиме аналози на горенаведените примери во форма на опсег-V3 и иднина + потоа во идните стандарди C ++. Но, пред објавувањето на нови стандарди, можеме да користиме различни библиотеки чиј интерфејс ја поттикнува употребата на синџир синџир.

Во принцип, според мое мислење, промената на правилата за постапката за пресметување на изразите е една од најважните иновации C + + 17, за кои неколку луѓе ќе забележат, бидејќи сè (или речиси сè) едноставно ќе функционира како што треба да работи според здравиот разум. И здрав разум во стандардот C ++ станува се повеќе и повеќе.

Минимизирајте копирање

Еден од првите чекори во обуката C ++ е проучување на конструкторот за копирање. Впрочем, користејќи го можете лесно да одредите што и кога ќе се копира. Оние. Ние ја пишуваме нашата класа, додаваме копирачки конструктор таму, во кој го препишуваме излезот преку Cout, и уживајте во излезот, според кој дознаваме колку копии ние сме создадени.

Со доаѓањето на семантиката на движење, ситуацијата беше донекаде посложена, така што за комплетноста на сликата сега треба да создаде подвижен конструктор. Но, за овој дел не е важно, бидејќи Сите миризливи важи и за копирање и движење.

На пример, да пишуваме таков код:

#INClude. Користење на именски простор STD; Класа someclass (јавна: someclass () \u003d стандардно; someclass (const someclass &) (cout<< "Copy ctor called.\n"; } }; SomeClass meReturn() { return SomeClass{}; } int main() { auto some = meReturn(); };

Колку пати фразата "Копирај Ктор наречен" се појавува на екранот, ако го собереш овој код на компајлерот кој имплементира C + + 14 и ја стартувате програмата? Нула, една, или може да биде два пати? Точниот одговор е: непознат.

Оние за кои одговорот стана изненадување, ги заслужи објаснувањата на кои одиме. Значи, прво да го напуштиме стандардот и да размислиме кој максимален број на копии овде. може да се создаде. Најголем број на можни копии тука е бројот 2: првата копија е создадена при извршување на изјавата за враќање, а втората копија е создадена при дизајнирање на некој објект. Но, ако го извршите овој код на повеќе или помалку модерен компајлер (без дополнителни клучеви!), Малку е веројатно дека ќе видите двојно излез; Поверојатно исходот е или една линија, или воопшто нема да има излез. Сега малку модифицирачки код на нашата функција, тоа ќе биде втората опција:

Someclass merenturn () (someclass некои (); врати некои;)

Ако го исполниме овој код на популарните компајлери, излезот може да се промени и не може (се менува на MSVC 2017, во режим на дебагирање). Конечно, ние сеуште го менуваме кодот на функцијата, само овој пат излезот е загарантиран за промена (во однос на првата опција и земајќи ја предвид моменталната позиција на нештата со компајлери):

Someclass merenturn () (someclass некои (); ако (неточно) враќање someclass (); врати некои;)

Значи, функцијата, во суштина, во сите верзии исто, а однесувањето е различно - што се случува овде? Започнете. Според стандардот C ++, во некои случаи компајлерот не може да го копира објектот; Оваа ситуација беше именувана поминува копирање (PC, English Copy Elion). Комплетна листа (прилично кратки) функции за кои можете да одредите дали копијата прескокнување е дозволено да се опише во класата.Copy / p31. Ние сме заинтересирани за две слични, но сепак различни ситуации.

Во оригиналниот пример, нашата функција се враќа привремено безимени објект. Во таква ситуација, компајлерот има право да ги намали двете копирање и едноставно создаде објект директно во некои. Во народот, оваа ситуација беше именувана оптимизација на вратената вредност (Оба, оптимизација на вредноста на враќањето на англискиот јазик). Ако го погледнеме GCC / CLANG / MSVC, ќе видиме дека за таква функција тие се ослободуваат од двете копии и, според тоа, излезот ќе биде празен.

Ваквата оптимизација е дозволена не само за враќање, туку и за други места каде иницијализацијата на привремениот, неименуван објект е иницијализиран. Значи, ако имате празнење MEACCECT (SOMECLASS), кој се нарекува како Meaccept (someclass ()), тогаш компајлерот има право да го изостави излишно копирање.

Сега да се свртиме кон втората опција каде што создадовме именуван Објект на магацинот. Излезот за GCC / CLANG не е променет, но за MSVC (во режим на дебагирање) имаше една линија во излезот, очигледно е дека во овој случај MSVC се ослободи од втората копија. Врз основа на горенаведеното, станува јасно дека компајлерот исто така го користи компјутерот, но ова се случува според малку поинаков критериум: има право да се ослободи од копирање именуван Објектот на магацинот што се враќа од функцијата. Слична оптимизација добиени во името на луѓето оптимизација на именуваната вратена вредност (Oivz, англиски јазик. Именуван за оптимизација на вредноста на поврат).

Овој компајлер за оптимизација е потешко да се усогласи со тоа што сме видливи во третата верзија, каде што додадовме апсолутно бескорисни ако, што ги направи сите три главни компајлери спаси и направи копија. Така, OIVZ е повеќе "кревка" оптимизација од едноставни OPS, и, по правило, се исклучува кога има неколку различни поврат во кодот. Ова е еден од аргументите зошто само едно враќање треба да биде во функција (не можам да кажам дека аргументот е многу убедлив).

Интересен факт е дека погоре опишаната оптимизација се користи во компајлерите дури и кога се компајлираме со оптимизација исклучена (-O0, / OD). Покрај тоа, само GCC и Clang може да се направат за да се создадат сите копии. За да го направите ова, треба да го користите копчето за конструктори-функционалност, а MSVC под никакви околности нема да создаде две копии, и нема [јавни] клучеви за да го оневозможите ова однесување.

Постои уште еден момент за споменување. Иако во C ++ 14 компајлер и може да ги отстрани двете копии, со што, без извршување на коректор конструктор никогаш, треба да даде грешка во компилација ако не постои таков дизајнер. Оние. Ако пишуваме такво наместо постоечкиот дизајнер на дизајнот: Someclass (const someclass &) \u003d ИзбришиПрограмата нема да им пречи дури и кога компајлерите можат да се ослободат од - дизајнерот треба да биде.

Па, конечно, третиот: се движи. Ако компајлерот може да ја испушти копијата, може да биде испуштено. Оние. Во овој поглед, тие се апсолутно еквивалентни. Во овој поглед, патем, една интересна ситуација е поврзана. Многу програмери (заклучокот за многумина го прават врз основа на кодот што го видов на мрежата) не ги разбирам семантиката на движење и напишете го кодот е слично на ова: Врати Std :: Move (Honeobject). Навидум кодот е апсолутно безопасен и работи како што се очекуваше со пишување, само овој код загарантирана Го исклучува AIC. Како што мислите, што е подобро: Дали е еден евтин конструктор, или не прави ништо воопшто?

Нова реалност

Сега е време да се разгледа што ова е променето во C ++ 17 во врска со компјутер. Сите промени, дел од кои и што ќе разговараме во овој дел може да се најде во оригиналната реченица P0135R1. Ако го погледнете овој документ, ќе видите дека опишува бројни уредувања на стандардот во однос на категоријата изрази (во поголема мера prvalue.), како и разни уредувања појаснување каде да се експлицитно да се изврши директно (Директно) и копија (Копија) иницијализација. Ние сме од сето ова сет е само една промена, која е опишана во stmt.return / p2.

Значи, според горенаведените иновации, враќањето од функцијата на привремен неименуван објект (прва) од ист тип (т.е. не е потребна конверзија), како што е вратениот тип на функција, врши иницијализација на копирање на резултатот (кој, според до DCL.init / p (17.6. 1) ви овозможува да го прескокнете копирањето). Напишано во реченицата погоре е, во суштина, истиот Ovi, само овој пат задолжително. Оние. Ако во C ++ 14 компајлер може се ослободи од копирање / движење во овој случај сега тој мора направи го. Што ни го дава, бидејќи веќе го видовме компајлерот и совршено се справува добро? И ни дава следно, имајќи таков код:

Someclass merenturn () (враќање someclass ();)

Ние воопшто не можеме да ги копираме и преместуваме конструкторите, и сепак ќе биде составен. Важно е да се напомене дека само случајот се промени кога друг објект е создаден од привремениот неименуван објект, ако го вратиме именуваниот објект (OIVZ), дури и ако компајлерот може да го прескокне копирањето, потребно е присуство на соодветен дизајнер.

Постои уште една точка која е веќе поврзана со трансферот на аргументи, а не вратена вредност. Ако го имаме овој код:

Неважечки meaccept ([] someclass s) ()

Кога ќе ја повикате функцијата MEECCECT (SOMESCLASS ()), исто така, нема да има копија и повеќе не е оптимизација, туку стандардниот услов. Ова се должи на промените во дефинирањето на Prvalue (Basic.lval) и со фактот дека оваа промена е вклучена. Ајде да погледнеме низ оваа линија: MAECCECT (SOMECLASS ()). Ако зборуваме во однос на старата прва, тогаш someclass () е привремен предмет, кој потоа се копира во параметарот на функцијата. Но, новата дефиниција на prvalue е дека веќе не е објект, но израз, чија пресметка е иницијализација на објектот. Што значи ова за нас? Ова значи дека во нашиот израз што се разгледува, someclass () не е привремен предмет, туку израз на иницијализација на параметарот на функцијата. Тука, веќе споменати од нас претходно опишани во DCL.init / P (17.6.1), и не се појавува копирање - иницијализацијата се врши директно.

На прв поглед, ова е прилично помала иновација, бидејќи истото се случило претходно, само компајлерите не беа обврзани да го сторат тоа. Сепак, оваа иновација ја промени суштината на концептот на prvalue, па затоа не е достоен за мала. Да, и од чисто практична гледна точка, неопходно е да се знае за оваа промена, бидејќи кога го проучуваме јазикот, ние ќе го научиме емпириски, а во овој процес, многу често се наоѓаат експериментите со конструктори за копирање / движење. Значи, почнувајќи од C ++ 17, не можете да го натерате компајлерот да направи копија во претходно опишаните примери. Не знамиња нема да помогнат ако програмата е компајлирана за C ++ 17, а компајлерот навистина го поддржува. Што се однесува до обичниот код, оваа иновација ви овозможува да креирате фабрички функции кои ги враќаат предметите кои немаат дизајнери за копирање / поместување. Колку е потребно? Времето ќе каже.

Lambda.

Комитетот продолжува да ја покажува својата љубов на Ламбдам, додавам нешто ново за нив во секое ново издание на стандардот. 2017 година не беше исклучок, а Ламбда го доби својот дел од иновациите. Иако продолжувам да чекам за кратка синтакса (како C # One x \u003d\u003e x) и ги разгледувам иновациите на овој стандарден незначаен, сè уште не можам да дојдам околу нив.

Снимање на ова

Значи, иновацијата е прва. Сега листата за фотографирање може да се пренесе копија од објектот со користење на овој покажувач. Пред C ++ 17, ако сакаме да префрлиме копија од тековниот предмет во Ламбда, бевме принудени да напишеме такво нешто:

#INClude. Користење на именски простор STD; Класа someclass (јавна: someclass (големина на вредност): m_value (вредност) VOWEMETHOD () (Auto Lambda \u003d [_this \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"; };

Оние. Пристапот до членството на објектот се врши токму на ист начин како да создадеме Lambda со таква листа на фаќање, но во Lambda не постои тековен објект (I.e. овој индикатор) и неговата копија. Сакам да забележам дека не морав да напишам таков код, па затоа ми е тешко да ја процени корисноста на иновациите, но некој јасно ќе стане полесен. Можам само да се радувам за нив и да одам на следната иновација.

Треба повеќе постојани!

Друга промена која предложи многу одамна, ова е додавање на употребата на LAMBD во постојани изрази. Се разбира, таквите Lambdes исто така треба да бидат константни. На пример:

Автоматски единаесет \u003d (Врати 11;); Низа. Arr;

Како што можете да видите, дефиницијата на Lambda не е променета, но нејзиниот повик се користи во контекст, каде што е неопходно да се користи времето за компилација константа. Затоа што Овој код е успешно составен, секој внимателен програмер може да го направи следниот заклучок: оператор () класа генерирана од Lambda, е Constelpr член и овој заклучок, без сомнение верен. Почнувајќи со C ++ 17, сите изрази на Lambda се Constexpr, додека на C + + 17 тие беа едноставно конституирани. Но, тие ќе бидат сведени на констант, ако телото на Lambda функцијата не одговара на најмалку еден критериум, кои се предмет на сите функции на constexpr (критериумите се опишани во DCL.constexpr). Направете минимални промени во нашиот код, а Lambda ќе престане да биде Constexpr:

Автоматско единаесет \u003d (int x; врати 11;););

Со таков LAMBDA код за создавање на низа ќе даде грешка при компилација (што всушност, бараме), но создавањето на грешките на Lambda нема да даде. Сепак, можеме да ги вртиме ореви и побарувачката од Lambda за да има тело поднесено до горенаведените правила:

Автоматско единаесет \u003d () constexpr (int x; врати 11;););

Ве молиме имајте предвид дека моравме да додадеме и очигледен constexpr и (), кој не носи функционално оптоварување и служи само само со најголема личност на стандардот. Така, можеме да создадеме функции на Lambda кои се загарантирани може да се користат во контекст на конзервација.

Оваа промена одамна е олеснета и не треба да биде за никого изненадување: едноставни функции можат да бидат constexpr, функционална членка - исто така, она што Lambda е полошо? Колку има потреба од constexpr lambda? Ова е поинтересно. Мислам дека им е потребен код КонсПРПР колку што им е потребен едноставен код. Сега C ++ е забележано од страна на Constexpr Boom: Луѓето се натпреваруваат кои ќе одат понатаму во трансферот на работа од време на извршување за време на компилацијата.

Тие го достигнуваат пишувањето на писорот JSON, па дури и пред извршувањето на регуларните изрази (кој е заинтересиран, видете го видеото со CPPCON2017: "Constexpr сите работи!"). Покрај тоа, постојат се повеќе и повеќе стандардни (а не многу) алгоритми кои стануваат COSTEXPR, кои генерира најочигледна употреба на LAMBD, бидејќи тие се едноставно создадени за алгоритми. Затоа, според мое мислење, додавањето на ConstexPR е добар чекор напред, што ќе овозможи пишување повеќе код кој ќе се изврши за време на компилација.

Од друга страна, дали навистина ни треба толку многу за пренос на фазата на компилација? Се разбира, кога нешто може да се пренесе од повеќе динамична верзија, на едно извршување за време на компилацијата е дефинитивен плус. Или не? Тоа зависи од задачата и придобивките што ги добиваме за време на извршувањето. Дозволете ни да го напишеме Parser JSON, кој ја троши масата на RAM меморија и го зголемува времето на компилација (погледнете барем во последните 3 минути од горенаведеното видео), што ни дава? Да, сега можеме да ја расклопиме конфигурацијата за време на компилацијата и да ја користиме во кодот. Но, ние би можеле да го сториме тоа пред, без да го користиме JSON, и ова исто така ќе биде нула оптоварување во времето на извршување (на пример, само множество знамиња во насловот). Тоа ме потсетува на брадеста шега:

Двајца пријатели се наоѓаат:

- Слушнав тука, дали го купивте автомобилот?

- Да! И како живеев! Сега сè е време! Вчера, еден ден успеав да го сменам нафтата, да купам нови гуми, отиде на пазарот на автомобили зад крилјата, веднаш отиде во автомобил услуга и ги променив, а јас, исто така, возев во продавница за не-замрзнување. И како би имал време без автомобил?!

Јас може да се расправам, велат тие, JSON е поудобно. Нека биде. Тогаш ајде да го додадеме сценариото на истиот питон (или генерално Cmake), кој ќе биде генериран за да генерираме конфигурациски објект од JSON. Да, ние ќе мораме да додадеме уште еден чекор кон собранието на нашиот проект, но дали е потешко да се напише код на C ++, кој го расклопува JSON? Да, и никој не го откажа времето на компилација (и јас ја разгледувам оваа причина многу повеќе значително): ако кодот е компајлиран долго време, тогаш развојот ќе се претвори во пеколот. Затоа, јас апсолутно не го гледам значењето во трансферот на сложени работи на Constexpr шини. Според мое мислење, ова е дополнителна компликација која може да се прикаже на конференции, но апсолутно нема потреба од вистински код. Употребата на пресметки за време на компилацијата мора да биде оправдана, а не само затоа што "сега можеме!".

Последните два параграфи можат да дадат погрешна идеја за мојот став кон оваа иновација: јас не сум против него, јас сум само против затнување на ноктите со микроскоп, тоа е сè. Примерот на вториот е јасно видлив во видеото со CPPCON, но самиот изглед на Constexpr Lambd е, се разбира, добра вест, бидејќи Lambda, функционално, не треба да биде различен од обичните функции - тие мора да ги имаат сите исти карактеристики, И ако меморијата не е мене промени, останува да додадете само едно нешто: именувани параметри за LAMBD. Чекајќи ги во C + + 20?

Во било која неразбирлива ситуација, се смири, заостанува, лов себе, оди јаде закуски. Грижете се за нервот :)

Оставете ги грешките од минатото.

Го цениме сегашноста.

Насмевка иднина)

Веднаш штом ќе се откажат од ситуацијата што те совпаѓа, веднаш ситуацијата ќе те пушти.




Не излегувај од себе. Не е познато што може да се случи во ваше отсуство.

Дојдете до дрвото. Нека те научи смиреност.

- Која е тајната на твојата смиреност?

"Во полн со неизбежен", одговори господарот.

Поместете го редоследот во мислите - и ќе го видите светот со други очи.

Срцето не заборавајте да чисти.

Што е мир?

Недостаток на непотребни мисли.

И кои мисли се непотребни?

(Веи де-Хан)

Најважно е вашето богатство е светот во туш.

Камилицата смирува.

Управувајте со вашето расположение, за тоа, ако не ги почитувате, тогаш командите.


Можете да најдете мир на умот, само да станете набљудувач, смирено дисперканинг за мимолиран тек на животот. Ирвин Јал.



Мирна е посилна од емоциите.

Тишина - погласен крик.

И што ќе ти се случи - не земај ништо на срце. Малку во светот е важно за долго време.

Ерих Марија Полк "Триумфален лак" ---

Добивање под дожд, можете да извлечете корисна лекција од ова. Ако дождот почнува неочекувано, не сакате да се навлажни и да ја спуштите улицата во вашиот дом. Но, посветувајќи се на куќата, забележувате дека сеуште е влажно. Ако одлучите од самиот почеток да не забрзате чекор, ќе го промовирате, но нема да губите. Исто така, треба да дејствувате во други слични околности.

Yamamoto Tsungomo - Hagakure. Книга Самурај.



Утре ќе биде она што треба да биде

и нема да има ништо од она што треба да биде -

не губи.

Ако не постои свет во нас, тоа е бескорисно да се погледне за тоа надвор.

Не е оптоварена со загриженост -
уживање во животот.
Не се радувај,
губењето нема да биде тажно затоа што знае
таа судбина не е константна.
Кога не сме поврзани работи
солне знае ведрина.
Ако телото не се одмори од напонот,
тоа е изложен.
Ако Духот е засекогаш во загриженост,
тој исчезнува.

Zhuang tzu ---

Ако фрлите стап на куче, таа ќе го погледне овој стап. И ако го фрлите стап на лавот, тогаш тоа ќе, без да се разбуди, погледнете го фрлениот. Ова е формална фраза, која беше кажано за време на споровите во античка Кина, ако соговорникот почна да се држи до зборови и престана да ја гледа главната работа.

Вдишување, го смирувам моето тело и умот.
Прави издишување, се насмевнувам.
Останувам во моментов, знам дека овој момент е неверојатен!

Дозволете ми да дишете полни со гради и не возете во рамката.

Моќта на оној што верува во својата моќ.

Работете ја навиката за следење на вашата ментално-емоционална состојба со само-надзор. За редовно да се запрашате: "Дали сум мирен во моментот?" - Ова е прашање кое е корисно редовно да се запрашате. Сеуште можете да прашате: "Што ми се случува во моментот?"

Екхарт Толере.

Слободата е слобода од загриженост. Сфаќајќи дека не можете да влијаете на резултатите, не обрнувајте внимание на вашите желби и стравови. Нека дојдат и да си одат. Не ги хранат со интерес и внимание. Всушност, работите се прават со вас, а не од вас.

Нисаргадата Махарај


Поморно и избалансирано лице, толку помоќен нејзиниот потенцијал и поголемиот ќе биде неговиот успех во добри и достојни работи. Непропустливоста на умот е едно од најголемите богатства на мудроста.


Основата на сета мудрост е мирна и трпеливост.

Стоп за вашата анксиозност, а потоа можете да видите прекрасен модел ...

Кога умот доаѓа до мир, почнувате да ја ценат светлината на месечината и ветерот на ветрот и разбирате дека нема потреба од светска потреба.

Направете мир во вашата душа, и околу вас ќе бидете спасени.

Всушност, само сакате мир и љубов. Од нив, излеговте, ќе се вратите кај нив и тие се. Пападжи.


Најубавите и здрави луѓе се чии луѓе не се досадни.


Највисок степен на човечка мудрост е способноста да се одржи смиреност спротивно на надворешните грмотевици.



Вие не сте поврзани со нашите искуства, но што се искачи.

Не земајте решенија за говорење. Добро ги отежнува сите "за" и "против". Речиси секоја личност има небесен водич, вториот "јас". Размислете и прашајте го, и дали треба да се направи или не?! Научете како да го набљудувате, видете невидливо, ја предвидувате ситуацијата.

Кога размислуваме за планинските шуми и посилните предности, срцето, инспирирано од световната кал, постепено се чисти. Кога читате во античките канони и погледнете ги сликите на старите мајстори, духот на световна вулгарност не е доволен. Хонг Зичен, вкусот на корените.


Мудроста доаѓа со способност да биде мирна. Само погледнете и слушајте. Ништо повеќе потреби. Кога сте сами, кога само ќе погледнете и слушате, тој се активира во вас ослободен од концептите на рационалност. Дозволете мирот да ги насочи вашите зборови и работи.

Екхарт Толере.


Ние никогаш нема да можеме да постигнеме мир на умот во надворешниот свет додека не успеат во внатрешноста.

Суштината на рамнотежа не е да се држи.

Суштината на релаксација не е да се одржи.

Суштината на природноста не е да се направи напор.

Оној кој не ужива и некој сака зло, постигнал рамнотежа. За него, целиот свет е исполнет со среќа.

Така повторно животот цветаше, клосно и исполнето со возбудлива радост и среќа, само треба да престанете ... запре и да си дозволите да се растворите во задоволство ...

Не грижете се за вашата иднина, бидете сами сега, и сè ќе падне на место.

Ако водата не е измачена, тоа само по себе ќе исчезне. Ако огледалото не е валкано, само по себе ќе ја одразува светлината. Човечкото срце не може да се направи чист. Елиминирање на она што тој го загадува, а самата чистота ќе се манифестира. Радоста не треба да се бара за себе. Елиминирајте каква загриженост ви дава, а самата радост ќе реагира во вашата душа.


Понекогаш само оставете сам ...

Во центарот на ураганот е секогаш тивок. Биди тивко место во центарот, дури и ако верките беснееат.

Вие сте небото. Сè друго е само времето.

Само во мирни води, работите се рефлектираат во неусогласените.

Само мирна свест е погодна за перцепцијата на светот.

Кога не знаете што да правите, - почекајте некое време. Крие. Живеат како живеат. Знакот порано или подоцна ќе се појави. Главната работа е да знаете дека чекате и бидете подготвени да се сретнете со она што го чекате. Луј Ривера

Не грижете се за вашата иднина, бидете сами сега, и сè ќе падне на место.


Смири ви ги лишува вашите непријатели. Во мир нема страв ниту прекумерниот гнев - само реалноста, прочистена од нарушување и мешање на емоционалните експлозии. Кога сте смирени - вие сте навистина силни.

Затоа, вашите противници секогаш ќе се обидат да ве изневерат од оваа држава - да инспирираат страв, сее сомневања, предизвикуваат гнев. Внатрешната држава е директно поврзана со дишењето. Каква ситуација би ја погодиле, веднаш смирувајќи го здивот - духот се смирува следното.


Главната работа во духовниот живот е да се задржи срцето во светот.

Треба да му верувате на животот.
Непотребно е да го довери својот поток без страв, бидејќи животот е бескрајно помудар.
Таа сѐ уште ќе ве чини на свој начин, понекогаш доста тешка,
но, на крајот ќе разберете дека тоа е во право.

Бидете сами сега, и сè ќе падне на место.

Вашиот дух не треба да се грижи, злиот збор не треба да ги прекине усните; Мора да останете добронамерни, со срце, целосна љубов која не содржи тајна злоба; Па дури и нељубесници, треба да се покрие со љубовници, дарежливи мисли, длабоки и неограничени, прочистени од сите гнев и омраза. Тоа е начинот на кој моите ученици треба да дејствуваат.

Само мирна вода правилно го одразува небото.

Најдобар показател за нивото на свест е способноста да се релаксираат со витални тешкотии.

Непознат човек Тие се повлекуваат, додека свесно лице се повеќе се качува.

Екхарт Толна.


Седи смирено, и ќе разберете како енергична случајна грижа. Жал ми е малку и ќе разберете колку е празен секојдневен говор. Извинете обични нерви, и ќе разберете колку сила луѓе извалка залудно. Чен Jizhu.


Мири ни помага да најдеме излез од најтешките ситуации.

Јас пукна во трпеливост? ... Јас сум повторно!)

3 мирни секунди

Сосема мирно размислуваат за три секунди за да разберат сè.

Но, каде да ги земе, овие навистина три мирни секунди? Ние сме премногу возбудени од нашите сопствени фантазии за да останеме барем за момент.


Дали некогаш сте виделе даб во состојба на стрес или делфин, останувајќи во мрачниот уредување на Духот, жаба која страда од ниска самодоверба, мачка, која не може да се релаксира или птицата оптоварена од навредливиот? Јас ќе научам од нивната способност да се поставам со сегашноста.
Екхарт Толере.

Не брзај. Секој пупка трепка одеднаш. Не го присилувајте пупка да стане цвет. Не ги фрлајте ливчињата. Тие се нежни; Ќе ги истуриш. Чекај и тие ќе се открие. Шри Шри Рави Шанкар

Не обожувајте го брадениот човек на небото или идол во книгата. Поклонување на вдишување и издишување, зимскиот бриз го гали твоето лице, утринската толпа на луѓе во метрото, само чувствувајќи го тоа жив, никогаш не знаеме што доаѓа.Забележи го Бога во очите на странец, Провиденс во уништени и обични. Обожајте ја земјата на која стоите. Направете секој ден танцот, со солзи во моите очи, размислувајќи за божествениот во секој момент, забележете го апсолутот во сè во однос на тоа, и нека ве повикуваат луѓето. Нека се смеат и митинг.

Џеф Фостер

Највисоката сила не е способноста да ги победи другите, и способноста да стане еден со другите.

Шри Чинми.

Обидете се, барем во мали, не го носите.
Погледни го светот - само погледнете.
Не кажувај "како", "не ми се допаѓа". Не кажувај ништо.
Не изговарате зборови, само погледнете.
Умот ќе се чувствува непријатности.
Умот би сакал да кажам ништо.
Вие само го кажете умот:
"Тивок, дозволете ми да видам, јас само ќе изгледа" ...

6 мудри совети од Чен Џиж

1. Седи смирено, и ќе разберете како енергични загрижености.
2. Жал ми е малку и ќе разберете колку е празен секојдневен говор.
3. Изговор обичен нервоза, и ќе се разбере колку сила луѓе squint залудно.
4. Карајте ја вашата порта, и ќе разберете како обремените врски на датираат.
5. Имам малку желби, и ќе разберете зошто таквите бројни болести на човечката раса се толку многубројни.
6. Бидете хумани, и ќе разберете колку е бездушни обични луѓе.

Ослободи го твојот ум од мисли.
Нека твоето срце се смири.
Мирно го гледаат превираниот свет
Види како сè паѓа во свое место ...

Среќна личност е многу лесно да се открие. Се чини дека ја зрачил аурата на смиреност и топлина, се движи полека, но тој има време насекаде, зборува смирено, но секој го разбира. Тајната на среќните луѓе е едноставна е недостатокот на напнатост.

Ако седите некаде во Хималаите и тишината ве опкружува - ова е тишината на Хималаите, а не твое. Мора да ги најдете вашите сопствени хималаи во ...

Раните предизвикани од мисли, лечат подолго од било кој друг.

Џоан Роулинг ", Хари Потер и редот на Феникс"

Мудроста доаѓа со способност да биде мирна.Само погледнете и слушајте. Ништо повеќе потреби. Кога сте сами, кога само ќе погледнете и слушате, тој се активира во вас ослободен од концептите на рационалност. Дозволете мирот да ги насочи вашите зборови и работи.

Екхарт Толе "Каква тишина вели"

Поморно и избалансирано лице, толку помоќен нејзиниот потенцијал и поголемиот ќе биде неговиот успех во добри и достојни работи. Непропустливоста на умот е едно од најголемите богатства на мудроста.

Џејмс Ален.

Кога живеете во согласност со вас, можете да се заедно со другите.

Источна мудрост -

Седат - и седат себеси; Одиш - и одиш себеси.
Главната работа - не губи во задниот дел.

Променете го ставот кон нештата што сте загрижени, и ќе бидете безбедни од нив. (Марк Азери)

Поправете го вниманието кон соларниот плексус. Обидете се да замислите дека мала сончева светлина се осветлува во вас. Нека се разгори, станува се повеќе и посилен. Нека се разболеат неговите зраци. Нека сонцето го зајакне целото тело со своите зраци.

Хармонија е рамномерност во сè. Ако сакате да се карате, одберете до 10 и "трчајте" на сонцето.

Смирен, само смирен :)

Заинтересирани за она што се случува во вас, не помалку од она што ве опкружува. Ако во внатрешниот свет сè е во ред, тогаш во надворешниот сè ќе падне на место.

Ockhart Toll ---

А будала и игнорирање имаат пет ќе земат:
срам без причина
зборувај без потреба
промена на непознато за што
се меша со фактот дека тие не се однесуваат
и тие не знаат како да разликуваат кој им помага добро и кој е зло.

Индиска поговорка ---

Што лисја, нека оди.
Што доаѓа, нека дојде.
Немате ништо и никогаш не сте имале, освен себе.

Ако едноставно можете да складирате внатрешна молк, а не контаминирана со сеќавања и очекувања, можете да го видите прекрасниот модел на настани. Ова е вашата анксиозност создава хаос.

Nisargadatta maharaj ---

Постои само еден начин за среќа - ова е прекин на анксиозноста на оние работи кои не се на сила на нашата волја.

ЕП -

Откако ги изгубиле своите сетила за сопствена важност, стануваме неранливи.

Да бидеш силен, треба да бидеш како вода. Нема пречки - таа тече; Браната - таа ќе престане; Браната ќе се пробие - таа повторно ќе тече; Во брод со четири степен, тоа е quadrigilane; Во круг - таа е заокружена. Бидејќи таа е толку компатибилна, најверојатно и најмногу и најмногу.

Светот е сличен на станицата, каде што сме засекогаш, чекаме, а потоа брзаме.

Кога вашиот ум и чувства го забавуваат својот потег пред срцето, спонтано внесувате хармонија со космичкиот ритам. Почнувате да го согледате светот со божествени очи, гледајќи дека сè се случува само по себе и во исто време. Откако сфати дека сè е веќе обожавано со законот на универзумот, ќе разберете дека не сте поинакви од светот и неговите господа. Ова е слобода. Муга

Ние се грижиме премногу. Премногу сериозно гледаат. Неопходно е да се примени на сè полесно. Но, со умот. Без нерви. Главната работа е да се размислува. И не прават глупости.

Она што може да го сфатите мирно повеќе не управува со вас ...

Никаде да се најде мир на оној кој не го најде само по себе.

Да се \u200b\u200bбиде лут и вознемирен - нема ништо освен да се казни за друга глупост.

Вие сте небото. И облаците се она што се случува, доаѓа и исчезнува.

Екхарт Толере.

Живеат, водење мир. Дојдете пролет, а цвеќињата цветаат.


Познато е дека човекот изгледа како, толку помалку други луѓе се контрадикторни и се расправаат со него. Спротивно на тоа, ако некое лице ја брани својата гледна точка со топлина, тој се расправа и насилно да се спротивстави.

Немој да брзаш. Јадете за еден час храна, а часот ќе дојде- Оди на патот.

Пауло Коело "Алхемичар"

Зачувај - тоа значи да се прифати што е. Значи, ти е отворен за живот. Отпорот е внатрешна клешта .... Значи, вие сте целосно затворени. Што би направиле во состојба на внатрешна отпорност (која исто така може да се нарече негативност), тоа ќе предизвика уште поголем надворешен отпор, а универзумот нема да биде на ваша страна, животот нема да ви помогне. Светлината не може да навлезе во внатрешноста преку затворени ролетни. Кога сте внатрешно инфериорни и запрете ја борбата, се отвора ново мерење на свеста. Ако акцијата е можна ... тоа ќе биде постигнато ... поддржано од креативниот ум ... со кој ќе станете еден во состојба на внатрешна отвореност. И тогаш околностите и луѓето почнуваат да ви помогнат, да станете со вас во исто време. Среќни совпаѓања се случуваат. Сè додава на вашата корист. Ако акцијата е невозможна, вие сте во пацификација и внатрешен мир, кои доаѓаат со одбивање да се борат.

Екхарт Толна Нова Земја

Жалбата "се смири" поради некоја причина секогаш е досадно.Друг парадокс.Обично по таков повикникој не мисли смирен.

Бернард Вербер огледало Касандра

Кој се понизил, ги поразил непријателите.

Силуан Атос

Јасно оној кој го чува Бог во себе.


Кога ќе се расправате со будала, најверојатно го прави истото.

Вистинската моќ на човекот не е во налетите, туку во неправилниот мир.

Највисок степен на човечка мудрост е способноста да се прилагодат на околностите и да се смири спротивно на надворешните грмотевици.

Мислењето на чувствата и мислите ќе исчезнат, ако не обрнете внимание на нив. Лама Ола Нидал

Никогаш нема да жалам што успеале да ги раскинат.
--- Источна мудрост ---

Вреди да се стремиме за таква состојба на свест во која сите настани ќе бидат перцепирани неутрално.