будет искаться тело в SomeNamespace (namespace алиаса)? Или только в namespace исходного типа?
Только в пространстве имён исходного типа
Жаль, ну ладно
Ну, это by design, идея в том, что алиасы не должны предоставлять из себя самостоятельную сущность и должны вести себя в точности как оригинальные типы – то есть, если для оригинального типа (например, std::string) мы ищем в std::, то и алиас получает в точности то же свойство – ищем в std::, ни больше, ни меньше Если отойти в сторону от этой концепции – нас будет ждать очень много боли, которую можно увидеть на примере шаблонов алиасов при реализации is_specialization_of, где алиасы начинают вести себя как самостоятельные сущности и сложность реализации возрастает многократно (на самом деле, я ни в каком виде не сумел закончить правильную реализацию) в сравнении с наивной версией is_specialization_of Если не очевидна проблема, на которую я указываю, то вот пример: template<typename... T> using vector_of_T = std::vector<T...>; vector_of_T<int> является специализацией vector<int>, но ни vector<int>, ни vector_of_T<int> не являются специализацией vector_of_T, что выглядит очень странно И если мы начнём алиасы наделять дополнительными свойствами по сравнению с типами, на которые они указывают, таких проблем станет ещё больше
Обсуждают сегодня