параметр шаблона как переменная - PullRequest
0 голосов
/ 25 июня 2011

Есть ли способ использовать параметр шаблона в качестве переменной? например, если у меня есть функция

template<int dim>
void DomainGrid<dim>::getData(Data data_, int field_dim)
{
    int size_ = field_dim *dim; // Compiler Error Here
    for(int i =0; i<size_; ++i)
       std::cout<<data_[i]<<std::endl;
}

Могу ли я получить аналогичную функциональность? Компиляция этой функции выдает ошибку на

invalid use of member (did you forget the ‘&’ ?)

ошибка появляется независимо от того, вызывается функция или нет

Что я думаю из-за этой проблемы ...

Ответы [ 2 ]

2 голосов
/ 25 июня 2011

Переименовать либо параметр шаблона, либо функцию-член?

Это кажется самым простым и простым решением. Если несколько символов имеют одно и то же имя, вы рискуете столкнуться с именем. Поэтому не используйте одно и то же имя для нескольких символов в таких случаях.

(Предполагается, что у вас есть функция-член dim(). Я полагаю, что так на основании сообщения об ошибке, но, возможно, это была полезная информация для включения в вопрос.)

2 голосов
/ 25 июня 2011
int size_ = field_dim *dim; // Compiler Error Here

Это прекрасно. Это не может быть ошибкой.

Реальная проблема не в коде, который вы разместили здесь. Так что опубликуйте определение DomainGrid и полные сообщения об ошибках.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...