Насколько я понимаю, шаблоны выражений будут ломаться на основе ранжирования for в C++11, поскольку for (auto x : expr)
содержит неявный auto&& __range = expr
, и это приведет к оборванным ссылкам
. способ создать классы шаблонов выражений, чтобы они либо правильно вели себя с диапазоном на основе for, либо, по крайней мере, вызывали ошибку компиляции?
По сути, я хотел бы предотвратить возможность что шаблоны выражений будут корректно компилироваться, но завершатся ошибкой во время выполнения из-за висячих ссылок. Я не возражаю против того, чтобы оборачивать шаблоны выражений во что-то, прежде чем использовать их в ранжированном виде, если нет тихих ошибок времени выполнения, если пользователь забывает обернуть шаблоны выражений.