Арсенал команд большинста процессоров для организации ветвлений исчерпывается различными видами условных переходов. Первые программисты за первые пару десятков лет неплохо научились ими пользоваться для создания довольно больших программ. После появления языков программирования высокого уровня, накопленные техники никуда не исчезли. Одна из самых
(
Read more... )
Comments 11
спасибо на добром слове :-). Я буду хвастаться эти фактом :-)))
Комментарий по существу - в моем журнале отдельным постом.
Reply
Reply
В JS ситуация лучше (там есть хотя бы генераторы), в C# ещё лучше (там этим занимались авторы, но генераторы с корутинами скрестить нормально так и не смогли), в Haskell хотя бы оно становится читаемо (код в асинхронку переводится сменой монадки, без единого лишнего символа, только типы хреновые), а совсем хорошо пока нет нигде. Т.е. по всей отрасли всё гораздо красивее, чем в этом С++, который я поленился даже разбирать.
Вот если бы хотя бы один язык программирования разрабатывался с упором на корутины, отсутствие мусорника не коррелировало бы с тормозами.
Reply
#include
#include
#include
using namespace std;
class ICallback {
public:
virtual void OnToken(char ch) = 0;
virtual ~ICallback() {
}
};
class TSplitter {
public:
void Split(const string& s, ICallback* callback) {
auto p = s.begin();
while (s.end() != p) {
callback->OnToken(*p);
++p;
}
}
};
void Split(const string& s, function callback)
{
class CallbackAdapter : public ICallback
{
private:
function m_callback;
public:
CallbackAdapter(function callback) : m_callback(callback ( ... )
Reply
Reply
Leave a comment