Ниже не компилируетсяМожно ли форматировать объявленные типы шаблонов, участвующих в специализации шаблонов?
#include <iostream>
#include <type_traits>
// forward declaration of a type template
template<class T, class Alloc = std::allocator<T>> class std::vector;
template<class T>
struct is_vector : std::false_type { };
// using the forward declared type template
template<class T, class Alloc>
struct is_vector<std::vector<T, Alloc>> : std::true_type { };
#include <vector>
int main()
{
std::cout << is_vector<std::vector<int>>::value << std::endl;
}
Я хочу, чтобы убедиться, что прогностическая объявил шаблоны типа (выше vector
), на самом деле не полезной в специализации условиях и что это не дефектный реализации виноват. Также почему это происходит? Я не хочу создавать объект типа vector<>
использовать его только как тег для отправки между специализациями; не включает <vector>
в точке создания экземпляра (назовите сайт is_vector<>
)?
Ваше опережающее объявление неправильно. – Jarod42