Custom deduction guide для std::классов
Изучаю вопрос о custom deduction guides. Вижу примеры, в которых его применяют для своих классов:
template <typename T>
struct S {
T data;
S(T x) : data(x) {}
};
S(const char*) -> S<std::string>;
S s("abc"); //decltype(s.data) - std::string
Когда пробую провернуть такое для библиотечных типов, не выходит:
std::vector(const char*) -> std::vector<std::string>
Компилятор говорит:
‘std::vector(const char*)-> std::vector >’ should have been declared inside ‘std’
Можно ли это обойти какими-нибудь шаблонными трюками?
Источник: Stack Overflow на русском