Cоздание базового шаблона минуя специализацию
От: Videoman Россия https://hts.tv/
Дата: 25.10.22 21:45
Оценка:
Возможен ли сабж в принципе? Что-то туплю. Хочется примерно следующего:
#include <iostream>

template <typename type_t>
struct object
{
    void print() { std::cout << "base template"; }
};

template <>
struct object<int>
{
    void print() { std::cout << "specialized template"; }
};

int main()
{
    object<int> obj; // force base template here
    obj.print();

    return 0;
}
Временно отменить специализацию и создать базовый вариант шаблона для int-а, что бы код выдал: "base template".

Задачка неожиданно возникла во время игр с std::format. Ребята в комитете придумали, что кастомные форматеры, это специализации классов. Ну сделал я специализацию для своего класса, который тоже является специализацией библиотечного шаблона. А как мне теперь вызвать реализацию по умолчанию для базового шаблона ? Или я что-то не то делаю
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.