Как правила выравнивания типов действуют при выделении памяти под массивы, многомерные массивы?
Какие утверждения про одномерные массивы в языке С верны?
<pre> //====================== start of sample.h ========================== #include <algorithm> int main(int argc, char* argv[]) { size_t N = 40; int A[N]; size_t B[N*2]; char C[N]; int D[N]; std::replace(&B[0], &B[N/2], 0, 42); std::replace(C, (C+N+1), 'D', 'T'); std::copy(&A[0], &A[N-1], &D[0]); std::copy(A, (A+N), D); return 0; } //====================== end of sample.h ========================== </pre> В каких из вызовов обобщённых алгоритмов встроенные массивы С++ использованы без ошибок?
К чему приведёт объявление переменной регистровой?
К каким последствиям приведёт использование ключевого слова extern при описании переменной, находящейся внутри тела функции?
К какой характеристике класса памяти относится следующее определение: "откуда, из каких точек мы можем обратиться к этой переменной по её имени"?
К какой характеристике класса памяти относится следующее определение: "насколько долго участок памяти, будет занят соответствующей переменной"?
<pre> //====================== start of sample.cpp ========================== #include <type_traits > class A { public: A(int in = 5); }; int main() { std::is_pointer<A> is_ptr; return 0; } //====================== end of sample.cpp ========================== </pre> Как может использоваться объявление переменной is_ptr?
<pre> //====================== start of sample.cpp ========================== int main(int argc, char* argv[]) { int a = 0; int b = 0; int X = 0; auto lf1 = [a,b,X] (int x) {return x > 0;}; auto lf2 = [a,b] (int x) { x++; return x;}; auto lf3 = [=] (int x) { x++; return x;}; auto lf4 = [&] (int x) { x++; return x;}; auto lf5 = [] (bool& z) { z = !z; return;}; return 0; } //====================== end of sample.cpp ========================== </pre> Какие лямбда функции из примера выше имеют доступ к значению переменной X?
<pre> //====================== start of sample.cpp ========================== template<unsigned long N> class binary { public: static unsigned long const value = binary<N / 10>::value << 1 | N % 10; }; template<> class binary<0> { public: static unsigned long const value = 0; }; int main(int argc, char* argv[]) { if (argc > 1) { static unsigned const two = binary<10>::value; } return 0; } //====================== end of sample.cpp ========================== </pre> Когда будет посчитано значение переменной two?