Результаты поиска по запросу "language-lawyer"

4 ответа

Разрешено ли писать экземпляр Derived поверх экземпляра Base?

Скажи код class Derived: public Base {....} Base* b_ptr = new( malloc(sizeof(Derived)) ) Base(1); b_ptr->f(2); Derived* d_ptr = new(b_ptr) Derived(3); b_ptr->g(4); d_ptr->f(5);кажется разумным и LSP доволен. Я подозреваю, что этот код ...

3 ответа

Изменяет ли C ++ 11 поведение явного вызова std :: swap, чтобы обеспечить обнаружение подкачки, находящейся в ADL, например boost :: swap?

ФонРассмотрим для этого вопроса следующий код: #include <utility> namespace ns { struct foo { foo() : i(0) {} int i; private: foo(const foo&); // not defined, foo& operator=(const foo&); // non-copyable }; void swap(foo& lhs, foo& rhs) { ...

5 ответов

Заставить все классы реализовать / переопределить «чисто виртуальный» метод в иерархии многоуровневого наследования

В С ++ почемучистый virtual Метод обязывает его принудительное переопределение толькоего непосредственным детям (для создания объекта), но не внукам и так далее? struct B { virtual void foo () = 0; }; struct D : B { virtual void foo () { ... }; ...

ТОП публикаций

1 ответ

Обработка одного объекта как массива с одним элементом, с указателем на один конец

Преамбула:Хорошо известно, что указатель на конец массива является допустимым и четко определенным: int main() { int na [1] = {}; const int* naBegin = na; const int* naEnd = na + 1; // one-past-end, OK }Этот указатель может использоваться в ...

3 ответа

Стирание вектор :: конец из вектора

Работает ли правильно (ничего не делает), когда я использую vector<T> v; v.erase(v.end());Я хочу использовать что-то вроде v.erase(std::find(...));Нужно ли мнеif этоv.end() или нет? Там нет информации об этом наC ++. ...

1 ответ

Ветвление операторов присваивания со значениями вместо ссылок

Этот вопрос возникает из вопросов, поднятыхэтот ответ [https://stackoverflow.com/a/9746772/734069]. Обычно мы определяем операторы копирования для типаT какT& operator=(const T&)и переместить операторы присваивания для типаT какT& ...

4 ответа

std :: кортеж и стандартное расположение

Если все членыstd::tuple являются изстандартные типы макетов [https://stackoverflow.com/a/7189821/734069], в том, чтоstd::tuple сама стандартная раскладка? Наличие определяемого пользователем конструктора копирования делает его нетривиальным, но ...

13 ответов

Взять адрес элемента массива «один за другим» через индекс: допустимый по стандарту C ++ или нет?

Я уже неоднократно утверждал, что следующий код не разрешен стандартом C ++: int array[5]; int *array_begin = &array[0]; int *array_end = &array[5]; Является&array[5] законный код C ++ в этом контексте? Я хотел бы получить ответ со ссылкой на ...

5 ответов

Каковы действительные подписи для функции main () в C?

Каковы действительные подписи для главной функции в C? Я знаю: int main(int argc, char *argv[])Есть ли другие действительные?

1 ответ

Запрещает ли C ++ в качестве стандарта хранение функций-членов внутри отдельных экземпляров классов?

В реализациях C ++, как правило, код не хранится (в любой форме) внутри экземпляров класса. Сегмент кода не находится в том же пространстве памяти, что и объекты и тому подобное. Это означает, что функции-члены не «хранятся» внутри экземпляров ...