Как я могу получить значение по умолчанию типа неуниверсальным путем?

Ваш код не устанавливает обработчики сигналов и s_signal_handler не используется. Вам необходимо вызвать функцию signal, чтобы зарегистрировать свой обратный вызов.

#include <atomic>
#include <signal.h>

::std::atomic<bool> s_interrupted{};

static void signal_handler(int signal)
{
  s_interrupted = true;
}

int main()
{
    ::signal(SIGINT, &::signal_handler);
5
задан Community 23 May 2017 в 10:32
поделиться

2 ответа

Это вероятно Ваш оптимальный маршрут.

Я не боялся бы использования класса Активатора здесь. Это - довольно стандартный класс, который зависится от компиляторами. Например, этот код VB

Public Sub Example(Of T as New)()
  Dim x = new T()
End Sub

Переводит примерно в этот код

Public Sub Example(Of T As New)()
  Dim x = Activator.CreateInstance(OF T)
ENd Sub
6
ответ дан 18 December 2019 в 14:52
поделиться

Почему Вы хотите избежать Активатора? В основном это - способ сделать его.

Я имею в виду, Вы могли записать общий метод и затем назвать это через отражение, но это - довольно отвратительное "долгое сокращение" только для предотвращения Активатора.

7
ответ дан 18 December 2019 в 14:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: