Я использую класс (sf::Texture
) из другой библиотеки.
Я хочу получить функциональность объявления псевдонима типа внутри этого класса, например:
class Texture
{
public:
using ResourceId = TextureId;
//...
}
чтобы я мог сделать это в своем коде:
enum class TextureId
{
texture1,
texture2 //..etc
}
template<class ResourceType>
class ResourceContainer
{
public:
ResourceContainer();
private:
ResourceType* resource_;
typename ResourceType::ResourceId id; // <--- this will have TextureId type
// when we create this object
// with <sf::Texture>
}
Однако, как я уже говорил, класс Texture
из другой библиотеки, поэтому я не могу редактировать его объявление.
Я пытался объявить его в своем коде как using sf::Texture::ResourceId = TextureId;
, но он не работает (невозможно разрешить символ ResourceId ).
Итак, есть ли альтернатива для получения той же функциональности без добавления ResourceId
в качестве второго параметра шаблона?
(с использованием C ++ 17)