Форум программистов, компьютерный форум, киберфорум
Наши страницы

Время приобретения объектом константности - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как отключить автодобавление закрывающих скобок http://www.cyberforum.ru/cpp-beginners/thread1231070.html
Как отключить автодобавление закрывающих скобок в С++? (Например, после символа { или соответственно.) В окне сервис - параметры редактора отключил почти всё - не помогает.
C++ Имитация игры с костями, вероятность шести - наибольшая нужно создать функциу которая генерирует число от 1 до 6, вероятность что выпадет 6 20% а число 1-5 16% подскажите пожалуйста http://www.cyberforum.ru/cpp-beginners/thread1231048.html
C++ Перегрузка оператора "<<" для вывода пользовательских классов
Всем доброго времени суток. Пытаюсь сделать перегрузку оператора "<<" для того, чтобы можно было выводить объекты пользовательского класса таким образом: cout <<object_my_class; //или так cout...
Ошибки при работе с шаблонами C++
Всем привет. Пишу упрощенный List с использованием шаблонов. Но в итоге я получаю вот такие сообщения про ошибки. "class template has already been declared as a non-class template" - указывает на...
C++ Хранение информации о многомерном массиве http://www.cyberforum.ru/cpp-beginners/thread1231018.html
При передаче в функцию многомерного массива требуется обязательно указывать все его соответсвующие размерности, кроме первой. Хранится где нибудь данная информция при выполнении программы или даннаю...
C++ Deadlock и racecondition проверить код класс принимает функцию и количество потоков...и все время поддерживает одновременное выполнение 10 потоков этой функции...интересуют ошибки связанные с многопоточным программированием...может еще... подробнее

Показать сообщение отдельно
gromo
371 / 270 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
20.07.2014, 21:12  [ТС]
Цитата Сообщение от Tulosba Посмотреть сообщение
иначе срабатывает оптимизация и дело до конструктора перемещения не доходит вовсе.
Ого, лучше наверное пускай срабатывает оптимизация - 2 вызова против 6 (!!!).
Только один момент остался неясен.
Если с -fno-elide-constructors то имеем такую цепочку ( метки #1 #2 )
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <vector>
#include <iostream>
 
struct V
{
    V() { std::cout << "ctor\n"; }
    ~V() { std::cout << "dtor\n"; }
    V(const V&) { std::cout << "copy ctor\n"; }
    V(V&&) { std::cout << "move ctor\n"; }
};
 
// Функция:
void someFunc(const V v) // #2 перемещение, деструктор, деструктор.
{
    std::cout << "someFunc" << std::endl;
}
 
V makeObject()
{
    return V(); // #1  конструктор, перемещение, деструктор
}
 
int main()
{
    someFunc( makeObject() );
}
Для чего второй раз вызвался деструктор в #2 ?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru