C ++ 17 Встроенный статический член с шаблономC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 C ++ 17 Встроенный статический член с шаблоном

Сообщение 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, как я знаю, шаблон генерирует код во время компиляции (время компиляции) и статические переменные, сгенерированные во время выполнения (до основного запуска).

Подробнее здесь: https://stackoverflow.com/questions/794 ... h-template
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»