RM

Size: a a a
RM
RM
RM
RM
CC
foo& operator+(decltype(foo)&&, int)
модифицирует первый аргумент? Что-то соблюдается? А как компилятор это должен узнать, если не видит тела? А он практически никогда его не видитO
RM
RM
CC
O
O
CC
CC
CC
M
O
bar = (foo + 42) * (foo + 42)
является нормальным, пускай и не самым красивым. Равно, как мне и кажется, что он должен оптимизироваться. Проблема в том, что если мы определим поведение — компилятор не сможет оптимизировать. Мало того, что оператор должен быть инлайн, так ещё и компилятору понадобятся действительно сложные эвристики, чтобы хотя бы иногда оптимизироватьO
RM
bar = (foo + 42) * (foo + 42)
является нормальным, пускай и не самым красивым. Равно, как мне и кажется, что он должен оптимизироваться. Проблема в том, что если мы определим поведение — компилятор не сможет оптимизировать. Мало того, что оператор должен быть инлайн, так ещё и компилятору понадобятся действительно сложные эвристики, чтобы хотя бы иногда оптимизироватьO