Какой здесь можно дать совет? Во-первых осознайте, что информация, окружающая вас, — это вовсе не факты. Не принимайте все на веру. Старайтесь получить фундаментальные знания в вопросах, которые вас волнуют.
К сожалению, и этот совет тоже не универсален. Нередко можно найти совершенно противоположные точки зрения на один и тот же вопрос, высказываемые экспертами (без кавычек) в соответствующей области.
Так я вам скажу по секрету, от этого ничего не меняется.
В том то и дело, что меняется. Я более чем уверен, что люди, составляющие основную аудиторию канала «Культура» и люди, составляющие основную аудиторию канала «НТВ» живут на совершенно разных планетах. Я это к тому, что очень многое зависит от информационного фона, в который помещает себя человек. Массмедиа (а также ББС) — два основных способа формирования этого фона.
Продолжая тему. Наверное, уже для многих не является секретом, что ТВ-рейтинги формируются у нас по результатам «опроса» пары тысяч человек (если не меньше). Т. е. ровно столько, сколько согласились поставить себе домой соответствующий девайс (отсылающий «в обратку» информацию о том, что и когда смотрится человеком). При этом получившаяся схема обладает очень сильным (хоть и не явным) контуром положительной обратной связи в виде публикаций этих самых рейтингов. По этому говорить о том, что нам показывают (или рассказывают) то, что «большинство из нас хочет» — не совсем корректно. А потому политика телеканалов/изданий формируется их редакторами и хозяевами. Хотя, таки да. Имеется свобода выбора. Как минимум «смотреть/не смотреть» и (как максимум) — «что именно смотреть/читать».
Скажите как там с работой Qt Visual Studio Add-in или Qt Visual Studio Integration в VS2010?
Увы, никак. :( Видимо, этот аддин появится вместе с выходом 4.7 (я лишь предполагаю). По этому для комфортной работы привёл Магомета к горе. Т. е. прикрутил компиль от VS 2010 к VS 2008.
И остался ли баг на Windows 7 bugreports.qt.nokia.com/browse/QTBUG-11309 в скомпилированной Qt 4.6.3+VS2010?
Судя по исходному коду — должен был остаться. Но дело в том, что на моей семёрке этот баг просто не проявляется (к счастью).
Как будто-бы единственный пример подобных маркетинговых ходов, ориентированных на малограмотность аудитории. :) Первое, что приходит на память — линейки звуковых карт в стиле
SB-8bit, SB-16bit, SB-32, SB-64, где в последних двух случаях указывается совсем не битность АЦП/ЦАП.
Но, так да. Сети несуществующего поколения — это что-то из области фантастики. :)
Ничего хорошего в адрес «Билайн» говорить не собираюсь, но устное обещание девочки из коллцентра и пункты договора, закрепляющие за сторонами те или иные обязательства — вещи несколько разных порядков. Я к тому, что обещать — ещё не жениться. И в данном в данном случае компания оставила за собой право не выполнять то, что явным образом не прописано в договоре. Ну а то, что при этом получилось такое вот откровенное «динамо» — форменное свинство. С этим нельзя не согласиться.
К слову сказать, на C++ (который 0x) мемоизатор может выглядеть так:
template<typename R, typename ... Args>
std::function<R(Args ...)> memoize(R f(Args ...))
{
auto l_f = [=](Args ... args) -> R
{
typedef std::tuple<Args ...> args_pack_t;
typedef std::tuple<args_pack_t, R> memoize_val_t;
static std::vector<memoize_val_t> values;
args_pack_t args_pack(args ...);
for (auto p = values.begin(); p != values.end(); ++ p)
{
if (std::get<0>(*p) == args_pack)
return std::get<1>(*p);
}
R ret_val = f(args ...);
values.push_back(memoize_val_t(args_pack, ret_val));
return ret_val;
};
return l_f;
}
Использование предельно просто:
int f(int a, double b)
{
return (a + 10) * b;
}
int main()
{
auto f_ = memoize(f);
std::cout << f_(10, 20) << std::endl;
std::cout << f_(10, 20) << std::endl;
std::cout << f_(10, 40) << std::endl;
return 0;
}
Лукап, понятно, в данном варианте — не самый оптимальный, но (как и в случае с питоном) можно легко сделать варианты мемоизаторов, которые будут делать это настолько оптимально, насколько захочет пользователь такого класса.
Сарказм, увы, не распознал. :)
В плане MMORPG-движков (браузерных) — согласен. Был свидетелем, как один мой знакомый разрабатывал оный. Сначала пробовал на C++, потом (отчаявшись решить ряд вопросов в силу недостатка опыта в некоторых областях и очевидной сложности реализации некоторых аспектов именно на C++), переписал всё на java. Переписать получилось быстро и он остался доволен результатом (в целом), бо производительностью был не особо озабочен.
Так то оно так (ведь имеются в виду MMORPG-движки?)… Только вот какая картинка получится, если сравнить нагрузки, которые таки движки могут выдерживать?
Ну, общечеловеческая точка зрения — понятие весьма относительное. Глубокий смысл такого поведения раскрыть не смогу, поскольку мне он не известен, но рискну предположить (согласившись с вышеотписавшимися), что такое поведение — унаследовано от ранних реализаций C и оставлено из соображений backward compatibility. Плюс к этому добавляет определённую степень свободы (нет необходимости таскать прототипы функций), и, как следствие, определённое количество проблем.
Почему же не должно? Вполне соответствует стандарту:
«If the expression that denotes the called function has a type that does not include a
prototype, the integer promotions are performed on each argument, and arguments that
have type float are promoted to double.» Раздел 6.5.2.2, п. 6. В конце этого же пункта говориться об UB в случае несоответствия реальному прототипу функции, которая будет вызвана.
Ну а gcc по этому поводу ещё и предупреждение выдаёт.
К сожалению, и этот совет тоже не универсален. Нередко можно найти совершенно противоположные точки зрения на один и тот же вопрос, высказываемые экспертами (без кавычек) в соответствующей области.
В том то и дело, что меняется. Я более чем уверен, что люди, составляющие основную аудиторию канала «Культура» и люди, составляющие основную аудиторию канала «НТВ» живут на совершенно разных планетах. Я это к тому, что очень многое зависит от информационного фона, в который помещает себя человек. Массмедиа (а также ББС) — два основных способа формирования этого фона.
Продолжая тему. Наверное, уже для многих не является секретом, что ТВ-рейтинги формируются у нас по результатам «опроса» пары тысяч человек (если не меньше). Т. е. ровно столько, сколько согласились поставить себе домой соответствующий девайс (отсылающий «в обратку» информацию о том, что и когда смотрится человеком). При этом получившаяся схема обладает очень сильным (хоть и не явным) контуром положительной обратной связи в виде публикаций этих самых рейтингов. По этому говорить о том, что нам показывают (или рассказывают) то, что «большинство из нас хочет» — не совсем корректно. А потому политика телеканалов/изданий формируется их редакторами и хозяевами. Хотя, таки да. Имеется свобода выбора. Как минимум «смотреть/не смотреть» и (как максимум) — «что именно смотреть/читать».
Увы, никак. :( Видимо, этот аддин появится вместе с выходом 4.7 (я лишь предполагаю). По этому для комфортной работы привёл Магомета к горе. Т. е. прикрутил компиль от VS 2010 к VS 2008.
Судя по исходному коду — должен был остаться. Но дело в том, что на моей семёрке этот баг просто не проявляется (к счастью).
SB-8bit, SB-16bit, SB-32, SB-64, где в последних двух случаях указывается совсем не битность АЦП/ЦАП.
Но, так да. Сети несуществующего поколения — это что-то из области фантастики. :)
Использование предельно просто:
Лукап, понятно, в данном варианте — не самый оптимальный, но (как и в случае с питоном) можно легко сделать варианты мемоизаторов, которые будут делать это настолько оптимально, насколько захочет пользователь такого класса.
В плане MMORPG-движков (браузерных) — согласен. Был свидетелем, как один мой знакомый разрабатывал оный. Сначала пробовал на C++, потом (отчаявшись решить ряд вопросов в силу недостатка опыта в некоторых областях и очевидной сложности реализации некоторых аспектов именно на C++), переписал всё на java. Переписать получилось быстро и он остался доволен результатом (в целом), бо производительностью был не особо озабочен.
Про offline-игрушки — тоже согласен.
«If the expression that denotes the called function has a type that does not include a
prototype, the integer promotions are performed on each argument, and arguments that
have type float are promoted to double.» Раздел 6.5.2.2, п. 6. В конце этого же пункта говориться об UB в случае несоответствия реальному прототипу функции, которая будет вызвана.
Ну а gcc по этому поводу ещё и предупреждение выдаёт.