Работаю с std::list Есть класс TTimerData (с методами) который надо поместить в лист
class TTimerData
{
public:
float tick1_ON;
float tick2_OFF;
uint32_t time_on;
TTimerData(float ptick1_ON, float ptick2_OFF, uint32_t ptime_on);
};
С этой целью пишу:
std::list<TTimerData> lst;
TTimerData * a=new TTimerData(0,0,11);
lst.push_back(a);
Компилятор на меня злобно ругается и говорит что я передал неверный тип.
lst.push_back(TTimerData(0,0,11));
На такую запись компилятор не ругается - но при этом создается временный объект в стеке. При удалении TTimerData из list должен сработать деструктор и должно вызваться освобождение памяти - что наверно может привести к ошибке.
В заголовке метод push_back определен так: "При подстановке value_type = TTimerData"
void push_back(const value_type& __x)
void push_back(value_type&& __x)
Вопрос: Подскажите пожалуйста как правильно в метод push_back передать значение new TTimerData(0,0,11) ? Или можно все таки использовать временный объект в стеке?
В библиотеке list (версия для arduino) метод push_back определен следующим образом:
void push_back(const value_type& __x)
void push_back(value_type&& __x)
Для определения метода:
void push_back(const value_type& __x)
подходит следующий вызов:
TTimerData * a = new TTimerData(0,0,11);
lst.push_back(*a);
lst.push_back( *(new TTimerData(0,0,11)));
Для определения метода:
void push_back(value_type&& __x)
Применяется вызов:
lst.push_back(TTimerData(0,0,11));
Вот тут: https://stackoverflow.com/questions/535223/why-cant-i-push-this-object-onto-my-stdlist Matt написал:
Обратите внимание, что TTimerData будет скопирован в ваш список; неявно сгенерированный конструктор копирования TTimerData (поскольку вы не объявили конструктор TTimerData (const TTimerData и др.) в своем классе, компилятор сделал это за вас) скопирует TTimerData.tick1_ON и TTimerData.tick2_OFF в список. В этом случае это нормально. Размер TTimerData мал, поэтому затраты на копирование невелики и содержат только три целых числа, так что копирование целых значений в порядке.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Хочу получить текстовое содержимое по id, например получить "6000118":
Подскажите, делаю запрос к AD и через консоль вижу все данные, но если пытаюсь добавить в select, то пишет ошибка, где я накосячил с кодом? Может...
Пытаюсь преобразовать WSDL в классы C# командой wsdl mainwsdl /l:C#, содержимое main