... но не любой ценой.
- 
	
- "Побочных эффектов. Любых." Это вы додумали, уважаемый. Стандарт говорит "побочные эффекты - это изменения в среде исполнения". ИМХО, они специально дыму напустили, потому что внятно эту концепцию не сформулируешь.  SciFi(224 знак., 19.10.2015 18:22)
			
- А что есть оптимизация? Вот операцию |= компилятор даже для volatile переменных может сделать как setb x,y, хотя по идее должен делать честные rmw. Это оптимизация? - Олдфаг(20.10.2015 09:42, 
)
					
				 - Не только переменная, но и все операции с ней. Не будет ни common subexpression, ничего. *Вы же сами привели, ниже, цитату из стандарта. Она витиевата, но вполне читабельна. - Скрипач(19.10.2015 18:46 - 18:48)
					
- Цитата читабельна, но бессмысленнабельна.  SciFi(332 знак., 19.10.2015 19:21)
							
- Есть понятие "контекст". Он делится на: локальный (внутри функции), файла (.с + инклуды) и глобальный (+зарезервированные имена, как минимум).   Скрипач(872 знак., 20.10.2015 10:05 - 10:11)
									
- Спасибо, это и так понятно и неинтересно. Я всего лишь пытаюсь все эти махания руками соотнести с текстом стандарта, вот и всё.  SciFi(977 знак., 20.10.2015 10:08 - 10:16)
											
- Не следует выбрасывать слово states. Под "изменением состояния" может подразумеваться все, что угодно. Это могут быть как "изменения первого рода", так и "изменения второго рода". Но, опять же, в данном контексте следует понимать первое. И  Bill(110 знак., 20.10.2015 10:25)
													
- Побочные (по-боку, за бортом) эффекты - последствия выполнения команды (statement), которые не уложились в контекст (локальные переменные, переменные модуля, глобальные переменные) и поэтому не видны компилятору. - Скрипач(20.10.2015 12:56)
															
- По степени мутности сей пассаж способен тягаться с оригинальной формулировкой в стандарте :-) - SciFi(20.10.2015 12:59)
 
 - Легко. Я бы просто дополнил текст стандарта вот этим (хотя бы в виде сноски) --> - SciFi(20.10.2015 10:32, ссылка)
															
- Хм ... я думаю, что всегда есть некий документ (закон, стандарт и т.д.), и есть комментарии к нему. Сам по себе документ должен быть кратким, а комментарии потому и называются комментариями, что в них подробно разъясняются положения данного  Bill(25 знак., 20.10.2015 10:41)
																	
- Такой документ с комментариями называется "С++ 
за 24 часадля чайников" 8) - Скрипач(20.10.2015 12:51)- Вообще-то я полагаю, что стандарты пишутся специалистами и для специалистов, и они должны быть понятны и тем и другим без комментариев. Или нет? - Bill(20.10.2015 15:02)
																					
- Да. Экспертами по программированию компиляторов, для экспертов по программированию компиляторов.  Скрипач(61 знак., 20.10.2015 15:19)
																							
- Нет, но я представляю как они работают. Был опыт по проектированию компилятора для 8080/z80. Но это было очень давно. - Bill(20.10.2015 17:09)
																									
- У меня тоже. В светлую студенческую пору :) А потом мне продали книжку по LEX/YACC :))) - Скрипач(20.10.2015 19:05)
 
 
 - Нет, но я представляю как они работают. Был опыт по проектированию компилятора для 8080/z80. Но это было очень давно. - Bill(20.10.2015 17:09)
																									
 
 - Да. Экспертами по программированию компиляторов, для экспертов по программированию компиляторов.  Скрипач(61 знак., 20.10.2015 15:19)
																							
 
 - Вообще-то я полагаю, что стандарты пишутся специалистами и для специалистов, и они должны быть понятны и тем и другим без комментариев. Или нет? - Bill(20.10.2015 15:02)
																					
 - Нет. Этот стандарт самодостаточен, пояснения в виде отдельного документа не предполагаются. Пояснения возникают в виде рабочих документов при выработке следующей версии стандарта, и они касаются только отличий от предыдущей версии. - SciFi(20.10.2015 10:45)
 
 - Такой документ с комментариями называется "С++ 
 
 - Хм ... я думаю, что всегда есть некий документ (закон, стандарт и т.д.), и есть комментарии к нему. Сам по себе документ должен быть кратким, а комментарии потому и называются комментариями, что в них подробно разъясняются положения данного  Bill(25 знак., 20.10.2015 10:41)
																	
 
 - Побочные (по-боку, за бортом) эффекты - последствия выполнения команды (statement), которые не уложились в контекст (локальные переменные, переменные модуля, глобальные переменные) и поэтому не видны компилятору. - Скрипач(20.10.2015 12:56)
															
 - "side effects, which are changes in the state of the execution environment" Скрипач(376 знак., 20.10.2015 10:14 - 10:20)
 
 - Не следует выбрасывать слово states. Под "изменением состояния" может подразумеваться все, что угодно. Это могут быть как "изменения первого рода", так и "изменения второго рода". Но, опять же, в данном контексте следует понимать первое. И  Bill(110 знак., 20.10.2015 10:25)
													
 
 - Спасибо, это и так понятно и неинтересно. Я всего лишь пытаюсь все эти махания руками соотнести с текстом стандарта, вот и всё.  SciFi(977 знак., 20.10.2015 10:08 - 10:16)
											
 - Что именно непонятно? Вроде данный вопрос столько раз обсуждался. Или нет? - Bill(20.10.2015 09:31)
									
- Но тема-то интересная. А что непонятно, я сформулировал в виде вопроса. Вы его читали? Или нет? - SciFi(20.10.2015 09:46)
											
- Это прост термин     side effect(60 знак., 21.10.2015 15:02, 
) 
 - Это прост термин     side effect(60 знак., 21.10.2015 15:02, 
 
 - Но тема-то интересная. А что непонятно, я сформулировал в виде вопроса. Вы его читали? Или нет? - SciFi(20.10.2015 09:46)
											
 
 - Есть понятие "контекст". Он делится на: локальный (внутри функции), файла (.с + инклуды) и глобальный (+зарезервированные имена, как минимум).   Скрипач(872 знак., 20.10.2015 10:05 - 10:11)
									
 
 - Цитата читабельна, но бессмысленнабельна.  SciFi(332 знак., 19.10.2015 19:21)
							
 
 - А что есть оптимизация? Вот операцию |= компилятор даже для volatile переменных может сделать как setb x,y, хотя по идее должен делать честные rmw. Это оптимизация? - Олдфаг(20.10.2015 09:42, 
 - Под побочными эффектами имеются ввиду ошибки компиляции? ;) Их 5!  VL(613 знак., 19.10.2015 08:23, 
) - Отличная фраза, только хз что означает. "side effects, which are changes in the state of the execution environment" - поди разберись. Короче, это всё 3,14здёж и провокация, но volatile здесь должен решить проблему. - SciFi(18.10.2015 17:40)
 
 - "Побочных эффектов. Любых." Это вы додумали, уважаемый. Стандарт говорит "побочные эффекты - это изменения в среде исполнения". ИМХО, они специально дыму напустили, потому что внятно эту концепцию не сформулируешь.  SciFi(224 знак., 19.10.2015 18:22)