Шаблонная специализация отдельного метода от шаблонного класса

Вам нужно будет использовать драйвер Opera с Selenium. Поэтому вместо использования WebUI.openBrowser('wwww.example.com') используйте следующее:

System.setProperty("webdriver.opera.driver", "D:/path-to-operadriver/operadriver_win64/operadriver.exe")
WebDriver driver = new OperaDriver()
driver.get('www.example.com')

Примечание. Загрузите драйвер Opera из здесь .

84
задан Jonathan Johansen 14 January 2019 в 08:36
поделиться

4 ответа

As with simple functions you can use declaration and implementation. Put in your header declaration:

template <>
void TClass<int>::doSomething(std::vector<int> * v);

and put implementation into one of your cpp-files:

template <>
void TClass<int>::doSomething(std::vector<int> * v) {
 // Do somtehing with a vector of int's
}

Don't forget to remove inline (I forgot and thought this solution will not work :) ). Checked on VC++2005

67
ответ дан 24 November 2019 в 08:39
поделиться

Я хотел бы добавить, что существует все еще серьезное основание сохранить inline ключевое слово там, если Вы намереваетесь оставить также специализацию в заголовочном файле.

"Интуитивно, когда Вы полностью специализируете что-то, это больше не зависит от шаблонного параметра - поэтому, если Вы не делаете специализацию встроенной, необходимо поместить его в .cpp файл вместо.h, или Вы заканчиваете тем, что нарушили одно правило определения..."

Ссылка: https://stackoverflow.com/a/4445772/1294184

1
ответ дан 24 November 2019 в 08:39
поделиться

Нет причин удалять ключевое слово inline.
Это никоим образом не меняет смысла кода.

3
ответ дан 24 November 2019 в 08:39
поделиться

You need to move specialization definition to CPP file. Specialization of member function of template class is allowed even if function is not declared as template.

4
ответ дан 24 November 2019 в 08:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: