, если вы используете angularjs & amp; aspnet / mvc, чтобы получить json-файлы, вы должны разрешить тип mime в web config
blockquote><staticContent> <remove fileExtension=".json" /> <mimeMap fileExtension=".json" mimeType="application/json" /> </staticContent>
Я верю, что это именно тот случай использования изменяемой лямбды. Если вы не хотите, чтобы все переменные были изменяемыми, я предлагаю просто создать класс функторов с одним полем mutable
. Таким образом, вы получаете лучшее из обоих миров (хорошо, это не так кратко). Дополнительным преимуществом является то, что operator()
равно const
(что совершенно верно, поскольку оно всегда возвращает одно и то же значение)
#include <optional>
int heavy_calc() {
// sleep(7500000 years)
return 42;
}
struct my_functor {
mutable std::optional<int> cache;
int operator()() const {
if (!cache) cache = heavy_calc();
return *cache;
}
}
int main() {
my_functor foo;
return foo() + foo();
}