Есть ли какие-либо подводные камни для помещения typedef внутри класса, если typedef использует класс, в котором он находится, в качестве параметра?
#include <memory>
class Foo{
public:
typedef std::shared_ptr<Foo> shared_ptr;
}
void main(){
Foo x;
Foo::shared_ptr p = std::make_shared<Foo>();
}
Приведенный выше код работает для меня (clang), но мне было интересно,в стандарте было что сказать об этом.