Программистское абстрактное
Aug. 24th, 2012 11:40 amДано:
using std::string;
string dotted_pair1(const string & a, const string & b) {
return a + '.' + b;
}
string dotted_pair2(const string & a, const string & b) {
return (a + '.') += b;
}Как нетрудно видеть умозрительно, да и экспериментально, dotted_pair2 эффективнее - меньше временных объектов создается. В общем случае компилятор не имеет права делать такую оптимизацию автоматически. Как бы ему объяснить, что в этом конкретном случае он его имеет?
Ну и совсем абстрактно: интересно, программисты на ФЯП в принципе задумываются о зависимости эффективности выполняемого кода от идиоматики исходного, или они выше этих глупостей?