Почему шаблон по умолчанию может быть необходим для вывода шаблона?

Если вы хотите преобразовать целую серию pandas datetimes в регулярные datetimes python, вы также можете использовать .to_pydatetime().

pd.date_range('20110101','20110102',freq='H').to_pydatetime()

> [datetime.datetime(2011, 1, 1, 0, 0) datetime.datetime(2011, 1, 1, 1, 0)
   datetime.datetime(2011, 1, 1, 2, 0) datetime.datetime(2011, 1, 1, 3, 0)
   ....

Он также поддерживает часовые пояса:

pd.date_range('20110101','20110102',freq='H').tz_localize('UTC').tz_convert('Australia/Sydney').to_pydatetime()

[ datetime.datetime(2011, 1, 1, 11, 0, tzinfo=<DstTzInfo 'Australia/Sydney' EST+11:00:00 DST>)
 datetime.datetime(2011, 1, 1, 12, 0, tzinfo=<DstTzInfo 'Australia/Sydney' EST+11:00:00 DST>)
....
0
задан Vincenzo 17 January 2019 в 12:37
поделиться

2 ответа

Итак, что касается первой части сообщения об ошибке

no matching function for call to ‘branch_and_bound(Repr&,
std::vector<std::pair<knapsack, std::vector<int> > > (&)(Repr), bool(&)(Repr), float (&)(Repr), <unresolved overloaded function type>)’

Часть неразрешенного типа перегруженной функции> отмечает параметр, по которому вы передаете lower_bound. Это означает, что есть больше функций с таким именем, и компилятор не может решить, какую из них вы имеете в виду.

В заголовке <algorithm> есть функции std::lower_bound , что означает, что у вас есть using namespace std; где-то.

Теперь должно быть понятно, почему это работает, когда есть последний параметр шаблона по умолчанию - компилятору не нужно угадывать тип.

0
ответ дан jrok 17 January 2019 в 12:37
поделиться

Проблемой оказывается имя функции в определении функции float lower_bound(Repr). К сожалению, lower_bound конфликтует с функцией из стандартной библиотеки в <algorithm>. Без шаблона по умолчанию у компилятора было недостаточно информации, чтобы различать пользовательскую функцию и стандартную библиотеку.

0
ответ дан Vincenzo 17 January 2019 в 12:37
поделиться
Другие вопросы по тегам:

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