Попытавшись немного облегчить доступ к классу хранилища, я попал в ситуацию, о которой у меня мало знаний. И найти людей, которые пытаются сделать то же самое, что и я, нелегко.
То, что я пытаюсь сделать, это иметь класс, который хранит массив значений в виде строк внутри, но допускает простое приведение типов с конца пользователя. То, что я планировал сделать, это использовать оператор индекса массива, чтобы возвращать тот тип, который они указывают через шаблон. Хотя это звучит намного лучше, чем работает на практике. Вот простой пример того, что я делаю, чтобы дать вам представление о том, как оно должно работать.
class StringList
{
public:
template <typename T>
T operator[](const int i)
}
Оттуда я бы определил несколько конкретных шаблонов, и любой пользователь мог бы очень легко определить больше, если это необходимо. Но самая большая проблема с этим заключается в том, что я не знаю, как вызвать оператор индекса с шаблоном. Сначала я предположил следующее (что, по-видимому, неверно), учитывая, что это похоже на стандартный способ вызова шаблонного метода.
StringList list;
T var = list<T>[0];
Кто-нибудь знает правильный способ вызова оператора индекса в качестве шаблона? Или я должен просто избегать этого и использовать именованный метод?