LINUX.ORG.RU

На сколько легальна

Процентов на 95.

i-rinat ★★★★★
()
Последнее исправление: i-rinat (всего исправлений: 1)
Ответ на: комментарий от devalone

Не, ребят, я не про каст. В скобках ничего не должно быть.

Это нужно для шаблона класса. Скажем для template <type T> пробую выделять вектор элементов типа T внутри объекта через malloc и вызвать для каждого элемента «= T();» для инициализации для случая когда T это класс. Как-то так.

normann ★★★
() автор топика
Ответ на: комментарий от normann

если ты «выделяешь вектор элементов», то конструктор вектора сам вызовет конструкторы этих элементов.

Iron_Bug ★★★★★
()
Ответ на: комментарий от normann

в общем случае это не будет работать. потому что конструктор может быть нетривиальным. делай указатели.

Iron_Bug ★★★★★
()

ну тут просто либо лигальна либо не лигальна

anonymous
()

Всё нормально. Встроенные типы имеют конструирующие конструкторы. int() - конструктор, конструирующий int с дефолтным значением из конструктора равным 0.

P.S. Некоторые наивно полагают, что int(3.0) - это каст типа (int)3.0

former_anonymous ★★★
()
Ответ на: комментарий от normann

пробую выделять вектор элементов типа T внутри объекта через malloc и вызвать для каждого элемента «= T();

выделяй через new, он может сразу инициализировать.

Data *data = new Data[3](); // вызываем дефолтные ctor-ы

former_anonymous ★★★
()
Ответ на: комментарий от former_anonymous

Встроенные типы имеют конструирующие конструкторы.

Смелое заявление. Цитатой из стандарта не подкрепишь?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.