私は科学計算のためのプログラムを書いています、そして私の最大の関心は(正しさの後)スピードです。最近、私も読みやすいコードが必要であることに気づきました。:)
書く代わりに
for (int k=0;k!=10;k+=1)
array[k] = fun(a, k);
書くことを考えています
class fun_t {
private:
type a;
public:
fun_t(type in) : a(in) {};
type operator() (int k) {
...computation...
}
};
...
fun_t fun(a);
for (int k=0;k!=10;k+=1)
array[k] = fun(k);
関数オブジェクトのスタイルは最初の例と同じくらい高速ですか?両方で同じインラインを期待できますか?より良い方法はありますか?(ここではアイデアを提示しているだけであり、これは実際のコードではないことに注意してください。)