Open Source & Linux Lab

It's better when it's simple

User Tools

Site Tools


etc:users:fun

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
etc:users:fun [2010/01/29 20:49] krinkinmuetc:users:fun [2016/08/08 20:53] – ↷ Page moved from users:fun to etc:users:fun kel
Line 45: Line 45:
  
 **Решение** **Решение**
-{{etc:users:схема.png|}}+ 
 +{{users:схема.png|}}
 Задан источник постоянного тока, но в данном случае это не важно. Свет горит, когда оба выключателя замкнуты на одну внешнюю ветвь. Должно быть решение более сложное, но с одной лампочкой (кстати лампочка обозначена чисто формально, там может быть целая система световых приборов). Задан источник постоянного тока, но в данном случае это не важно. Свет горит, когда оба выключателя замкнуты на одну внешнюю ветвь. Должно быть решение более сложное, но с одной лампочкой (кстати лампочка обозначена чисто формально, там может быть целая система световых приборов).
 +
 +Может {{users:jcmvbkbc:problems-scheme-2.png|}} ? ага так, чет про более сложное решение я косанул)
 +
 +4. Что делает следующий С++ код? (Matt Marcus)
 +
 +<code cpp>.
 +struct A {
 +   A(const volatile void*);
 +};
 +
 +char f(A);
 +int f(...);
 +
 +template <class T>
 +struct Test {
 +   static const int value = (sizeof(f(*(T*)0)) == sizeof(char));
 +};
 +
 +</code>
 +
 +**Решение**
 +*(T*) 0 - я немного не уверен в этой конструкции (как я понял, (Т*) 0 - это приведение 0 к типу T*, а первая * - это разыменование???), но в целом, (sizeof(f(*(T*)0)) - проверяет размер возвращаемого значения для функции с параметром типа Т, сравнивает с размером типа char, и таким образом, если для Т = А, то (sizeof(f(*(T*)0)) = 1, для T != A, получим (sizeof(f(*(T*)0)) = 4 (ну я принял, что sizeof(char) = 1 и sizeof(int) = 4), ну и в зависимости от того, какой тип передан в качестве T, value равно 0 или нет. Вот как-то так.
etc/users/fun.txt · Last modified: 2016/08/08 20:53 by kel