Я реализовал синглтон как встроенную переменную статического члена, но была проблема. (С шаблоном) < /p>
Я использую VS2022 и используя C ++ 17. < /li>
ниже кода есть ошибка компилятора (ошибка C2512 'a' a 'a' a 'is hiesable generator generator. /> < /ul>
#include
template
class A
{
public:
A() = default;
~A();
void print()
{
printf("Hello");
}
inline static A& GetInstace()
{
return _singleton;
}
private:
inline static A _singleton;
T _A{};
};
//template
//A A::_singleton; //This is Fine!
int main()
{
A& singletonei1 = A::GetInstace();
A& singletonef1 = A::GetInstace();
A& singletoned1 = A::GetInstace();
printf("int singletone : %p | float singletone : %p | double singletone : %p\n", &singletonei1, &singletonef1, &singletoned1);
return 0;
}
< /code>
Я думаю, что нет никаких причин компилятор не может найти конструктор. Beacuse, как я знаю, шаблон генерирует код во время компиляции (время компиляции) и статические переменные, сгенерированные во время выполнения (до основного запуска).
Подробнее здесь: https://stackoverflow.com/questions/794 ... h-template
C ++ 17 Встроенный статический член с шаблоном ⇐ C++
Программы на C++. Форум разработчиков
-
Anonymous
1741595075
Anonymous
Я реализовал синглтон как встроенную переменную статического члена, но была проблема. (С шаблоном) < /p>
Я использую VS2022 и используя C ++ 17. < /li>
ниже кода есть ошибка компилятора (ошибка C2512 'a' a 'a' a 'is hiesable generator generator. /> < /ul>
#include
template
class A
{
public:
A() = default;
~A();
void print()
{
printf("Hello");
}
inline static A& GetInstace()
{
return _singleton;
}
private:
inline static A _singleton;
T _A{};
};
//template
//A A::_singleton; //This is Fine!
int main()
{
A& singletonei1 = A::GetInstace();
A& singletonef1 = A::GetInstace();
A& singletoned1 = A::GetInstace();
printf("int singletone : %p | float singletone : %p | double singletone : %p\n", &singletonei1, &singletonef1, &singletoned1);
return 0;
}
< /code>
Я думаю, что нет никаких причин компилятор не может найти конструктор. Beacuse, как я знаю, шаблон генерирует код во время компиляции (время компиляции) и статические переменные, сгенерированные во время выполнения (до основного запуска).
Подробнее здесь: [url]https://stackoverflow.com/questions/79497283/c17-inline-static-member-with-template[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия