Результаты поиска по запросу "language-lawyer"
Разрешено ли писать экземпляр 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 доволен. Я подозреваю, что этот код ...
Изменяет ли 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) { ...
Заставить все классы реализовать / переопределить «чисто виртуальный» метод в иерархии многоуровневого наследования
В С ++ почемучистый virtual Метод обязывает его принудительное переопределение толькоего непосредственным детям (для создания объекта), но не внукам и так далее? struct B { virtual void foo () = 0; }; struct D : B { virtual void foo () { ... }; ...
Обработка одного объекта как массива с одним элементом, с указателем на один конец
Преамбула:Хорошо известно, что указатель на конец массива является допустимым и четко определенным: int main() { int na [1] = {}; const int* naBegin = na; const int* naEnd = na + 1; // one-past-end, OK }Этот указатель может использоваться в ...
Стирание вектор :: конец из вектора
Работает ли правильно (ничего не делает), когда я использую vector<T> v; v.erase(v.end());Я хочу использовать что-то вроде v.erase(std::find(...));Нужно ли мнеif этоv.end() или нет? Там нет информации об этом наC ++. ...
Ветвление операторов присваивания со значениями вместо ссылок
Этот вопрос возникает из вопросов, поднятыхэтот ответ [https://stackoverflow.com/a/9746772/734069]. Обычно мы определяем операторы копирования для типаT какT& operator=(const T&)и переместить операторы присваивания для типаT какT& ...
std :: кортеж и стандартное расположение
Если все членыstd::tuple являются изстандартные типы макетов [https://stackoverflow.com/a/7189821/734069], в том, чтоstd::tuple сама стандартная раскладка? Наличие определяемого пользователем конструктора копирования делает его нетривиальным, но ...
Взять адрес элемента массива «один за другим» через индекс: допустимый по стандарту C ++ или нет?
Я уже неоднократно утверждал, что следующий код не разрешен стандартом C ++: int array[5]; int *array_begin = &array[0]; int *array_end = &array[5]; Является&array[5] законный код C ++ в этом контексте? Я хотел бы получить ответ со ссылкой на ...
Каковы действительные подписи для функции main () в C?
Каковы действительные подписи для главной функции в C? Я знаю: int main(int argc, char *argv[])Есть ли другие действительные?
Запрещает ли C ++ в качестве стандарта хранение функций-членов внутри отдельных экземпляров классов?
В реализациях C ++, как правило, код не хранится (в любой форме) внутри экземпляров класса. Сегмент кода не находится в том же пространстве памяти, что и объекты и тому подобное. Это означает, что функции-члены не «хранятся» внутри экземпляров ...