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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
relationer
33 / 0 / 0
Регистрация: 07.11.2013
Сообщений: 118
#1

Использование std::is_nothrow_default_constructible - C++

24.08.2014, 21:02. Просмотров 302. Ответов 3
Метки нет (Все метки)

Здравствуйте!

Я использую базовый класс в качестве создателя интерфейса синглтона, и мне необходимо передать в качестве шаблонного аргумента сам класс-синглтон для этого. Я решил, что синглтон должен быть default constructible, и конструктор не должен выдавать исключений. Поэтому:
C++
1
2
3
4
5
class Singleton : Service<Singleton>
{
private:
    Singleton() noexcept;
}
Базовый класс:
C++
1
2
3
4
5
6
7
template<typename S>
class Service
{
public:
    static_assert(std::is_nothrow_default_constructible<S>::value,
    "message");
}
И получаю срабатывание static_assert, что удивляет.
Что я делаю не так?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.08.2014, 21:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Использование std::is_nothrow_default_constructible (C++):

Использование std::function в std::thread - C++
Нужно вызвать function fnc в новом потоке. Как сделать? function &lt;void(vector&lt;char&gt;)&gt; fnc; void test(vector&lt;char&gt; data) { for...

Использование std::system() - C++
компилирую в студии 2010. система win7. #include &lt;Windows.h&gt; int main() { int i=0; while(i&lt;1) { ...

Использование using namespace std; - C++
Я где-то слышал что использование такой диррективы на корню убивает пространство имен, но ведь только в boost и stl есть похожие классы,...

Использование std::type_index - C++
Доброе утро, облазил один игровой движок, там менеджеров ресурсов заполнен std::type_index - как я понимаю для контейнеров, где лежат...

Использование std::unique_ptr - C++
Есть в коде подобная конструкция, вылетает исключение на этапе очистки памяти. С чем это может быть связано? template &lt;typename T&gt; class...

Не воспринимает ни std::cout, ни std::cin. Вобщем ничего из std. Также не понимает iostream - C++
Здравствуйте! Я хотел начать изучать язык C++. Набрал литературы. Установил Microsoft Visual C++ 2005 Express Edition. Образ диска...

3
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
24.08.2014, 21:26 #2
Цитата Сообщение от relationer Посмотреть сообщение
C++
1
private:
...
0
relationer
33 / 0 / 0
Регистрация: 07.11.2013
Сообщений: 118
24.08.2014, 21:34  [ТС] #3
А в случае, если конструктор приватный, как проверить?
0
0x10
2478 / 1651 / 247
Регистрация: 24.11.2012
Сообщений: 4,087
25.08.2014, 05:19 #4
Цитата Сообщение от relationer Посмотреть сообщение
А в случае, если конструктор приватный, как проверить?
Объекты класса с приватным конструктором в принципе нельзя создать, он по логике не может быть никаким constructible.
И да, я вижу, что это синглтон и он, скорее всего, будет использовать этот или другой приватный конструктор внутри себя же.
0
25.08.2014, 05:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.08.2014, 05:19
Привет! Вот еще темы с ответами:

ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_stri - C++
на вод поступают 2 строки типа string. определить количество вхождений строки 2 в строку 1 ошибка error: cannot convert 'std::string {aka...

Использование std::array внутри пользовательского класса - C++
Здравствуйте! Я создал класс, одним из полей которого является массив std::array, однако компилятор ругается на константу, что задаёт...

STL std::set, std::pair, std::make_pair - C++
Я не знаю как описать тему в двух словах, поэтому не обращайте внимание на название темы. Собственно перейдем к нашим баранам: есть...

Разобраться почему не компилируется код (использование std::bitset) - C++
У меня не компилируется этот код. Где Ошибка? #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru