Я хотел бы использовать класс черты типа, который определяет, определен ли тип или нет, со следующей сигнатурой:
template< typename T, ... >
struct has_type
{
...
bool value;
}
Вместо has_type
, может быть type_exists
это лучшее имя.
Можно ли создать такую вещь? Если так, то как?
ФонУ меня есть две реализации типа класса, где одна опирается на стандарт, но необязательный типа, и у меня есть другая реализация, которая не полагается на это необязательный тип. Я хотел бы условно создать экземпляр каждой из этих реализаций, используя has_type<optional_type>
SFINAE. (Или, скорее, я бы действительно хотел избегать инструментов конфигурации, пытающихся скомпилировать простые тестовые программы, чтобы определить, существуют ли такие типы или нет, а затем передать эту информацию обратно в сборку реального кода через DEFINES.)
Задача ещё не решена.
Других решений пока нет …