Форум программистов, компьютерный форум CyberForum.ru

Storage durations - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Множественное наследование http://www.cyberforum.ru/cpp-beginners/thread1787242.html
Доброго времени суток. Есть ряд операций. Логически операции делятся на группы ( к примеру, запрос, ответ, чтение из буфера и .п.). В зависимости от группы, появляется специализация ( у всех операций есть общие черты (наличие имени операции), общий метод, но у каждой группы есть свои спец. методы...к примеру, сформировать запрос). В двух разных местах кода нужно обращаться к классам , как к...
C++ Полицейские-рекруты Недавно в вашем городе открылось отделение полиции. Сейчас идет набор кадров для работы в новом отделении. А тем временем, преступления все совершаются в городе. Достоверно известно, что один полицейский может расследовать только одно преступление за всю свою жизнь. Если преступление произошло в тот момент, когда в отделении полиции не было ни одного незанятого преступлениями полицейского, то... http://www.cyberforum.ru/cpp-beginners/thread1787237.html
Найти число, не входящее в заданную последовательность натуральных чисел C++
Прошу помочь решить. Задано число N и последовательность из N-1 натуральных чисел. Все числа лежат в диапазоне и не повторяются. Это означает, что существует единственное число из , которого нет в последовательности. Найти его. Для полного балла найдите линейное решение (количество действий пропорционально N, а не, скажем, квадрату N) Вход 7 6 1 2 5 7 4 10 2 3 4 1 8 9 5 6 10
C++ Вывести результат последовательного применения циклического сдвига вправо заданной последовательности k раз
Циклическим сдвигом вправо последовательности называется последовательность, получаемая из исходной перемещением последнего элемента в начало. Заданы числа N и k и последовательность целых чисел длины N. Вывести результат последовательного применения циклического сдвига вправо данной последовательность ровно k раз. Вход 5 2 1 2 3 4 5 6 1 7 1 7 2 6 1 5 5
C++ Распечатать все индексы вхождения числа х в последовательность а, начиная с последнего http://www.cyberforum.ru/cpp-beginners/thread1787231.html
Задана длина N последовательности целых чисел a и сама последовательность. После этого задается некоторое число х. Распечатать все индексы вхождения числа х в последовательность а, начиная с последнего. Если искомый элемент в последовательности вовсе отсутствует, вывести -1. В этой задаче элементы нумеруются с единицы! Вход 5 1 2 3 4 5 2 10 1 2 3 4 5 6 1 1 2 1 1
C++ Выяснить является ли заданная последовательность строго возрастающей, строго убывающей, или ни тем и ни другим На вход программы дается целое положительное число N большее единицы (N>1) и последовательность из N целых чисел. Написать Ascending, если последовательность строго возрастающяя, Descending, если последовательность строго убывающая и Neither, если ни то, ни то. Вход 5 1 2 5 7 9 6 1 1 2 5 7 9 подробнее

Показать сообщение отдельно
hoggy
5230 / 2121 / 404
Регистрация: 15.11.2014
Сообщений: 4,812
Завершенные тесты: 1
29.07.2016, 16:57     Storage durations
Цитата Сообщение от Operok Посмотреть сообщение
При чём тут это?
при том, что он иллюстрирует стратегию зачистки тлс.

Цитата Сообщение от Operok Посмотреть сообщение
Делать под библиотеку тред пул, и запрещать использовать любые другие потоки, если они как-то взаимодействуют с "моими" объектами?
да как хотите, так и делайте.
чего вам ещё не понятно?

Цитата Сообщение от Operok Посмотреть сообщение
с недавнего времени завязал с этим, только unique_ptr/shared_ptr
если вы при этом жалуетесь, что отсталая студия не тянет полноценное тлс,
стало быть - это ваши личные трудности.

Цитата Сообщение от Operok Посмотреть сообщение
как поток сам вызовет delete?
ещё раз внимательно см #26

если останутся какие то вопросы,
значит вам нужно подучить с++,
тему: new/delete

Добавлено через 11 минут
Цитата Сообщение от Operok Посмотреть сообщение
Интересно всё жеж почему так происходит
хз, что именно вы там творите.

однако ваше описание не соответствует действительности.

http://rextester.com/FXU60916

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#include <iostream>
#include <sstream>
#include <vector>
#include <thread>
#include <mutex>
 
namespace detail{
 
    #define dFOR__(char_) \
        typename std::enable_if< std::is_same<typename T::char_type, char_>::value,
 
    #define THIS_OBJECT__(obj_) \
        decltype(obj_)>::type& { return obj_; }
 
    template<class T> auto ostream__() -> dFOR__(char) 
        THIS_OBJECT__(std::cout);
 
    template<class T> auto ostream__() -> dFOR__(wchar_t) 
        THIS_OBJECT__(std::wcout);
 
    #undef THIS_OBJECT__
    #undef dFOR__
 
}//detail
 
template<class T> class AtomicStream
{
    typedef std::mutex 
        mutex_t;
 
    typedef std::basic_ostringstream<typename T::char_type>
        accumulator_t;
public:
    AtomicStream(T& s = detail::ostream__<T>() )
        : mMutex(), mStream(), mDst(s){}
 
   ~AtomicStream(){
        mMutex.lock();
        mDst << mStream.str();
        mMutex.unlock();
    }
 
    template<class U> accumulator_t& operator << (U&& v) { 
        return mStream << v, mStream;
    }
private:
    mutex_t       mMutex;
    accumulator_t mStream;
    T&            mDst;
};
 
typedef AtomicStream<std::ostream>
    AStream;
typedef AtomicStream<std::wostream>
    WAStream;
 
 
 
//------------------------------------------------------
 
 
#define dME \
    " -----------------------------> "   \
    "sample(" << std::this_thread::get_id() << ")"
 
struct sample {
    sample() { AStream() << dME " was build"     << std::endl; }
   ~sample() { AStream() << dME " was destroyed" << std::endl; }
};
 
#undef dME
 
thread_local sample gObj;
 
 
void atomic_print(const std::string& name, const size_t indx)
{
    AStream() << "thread(" << std::this_thread::get_id() << ") "<< name
        << " printing: " << indx 
        << std::endl;
}
 
void threadFunction(const std::string& name)
{
    for(size_t n=0;n<5; ++n)
        atomic_print(name, n);
    
    AStream() << "thread(" << std::this_thread::get_id() << ") "<< name
        << " was finished!"
        << std::endl;
}
 
 
 
int main()
{
    std::cout << "Hello, world!\n";
    
    const char* names[] = { "one", "two", "foo", "bar", "baz" };
    
    std::vector<std::thread> threads;
    for(size_t n=0; n< 5; ++n)
        threads.emplace_back(&threadFunction, names[n] );
 
    for(size_t n=0; n<5; ++n)
        threads[n].join();
    
    AStream() << "finished!"<<std::endl;
}
 
Текущее время: 06:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru