У меня есть шаблон, как:C++ специализация шаблона - специализируется только некоторые методы, с помощью осущий по умолчанию для остальных
template <typename T>
class MyThing {
public:
static void Write(T value) { ... }
static void Flush() { ... }
}
Для определенного типа, например, bool
, я хочу специализироваться методом Write
без изменения других методы. Что-то вроде этого ...
// Specialize Write() behavior for <bool> ...
// This won't work. Mything<bool> no longer has a Flush() method!
template <>
class MyThing<bool> {
public:
static void Write(bool value) { ... }
}
Как я специализируюсь только на одном из методов в классе шаблонов?
Не обязательно быть статическим. Я никогда не знал, что это возможно. – Barry
@Deduplicator - можете ли вы расширить свой комментарий? Явная специализация «видима», будучи объявлена в заголовочном файле, нет? Т.е., если бы я не добавил его в файл заголовка, другой код по ошибке использовал бы поведение по умолчанию. Или вы подразумеваете что-то еще? –