Используйте следующий код
DELIMITER $$
CREATE TRIGGER bu_table1_each BEFORE UPDATE ON table1 FOR EACH ROW
BEGIN
SET new.datefield = NOW();
END $$
DELIMITER ;
Распределитель по умолчанию, используемый для std::multimap
, является
std::allocator<std::pair<const Key, T>
. Таким образом, ключи в std::multimap
являются const
, что делает тип как
std::pair<const std::string, std::string>
, где как [117 ] ожидает параметр как ссылку на тип
std::pair<std::string, std::string>
Изменить ask()
на
void ask(std::pair<const std::string, std::string>& entry)
{
}
Тип элемента std::multimap<std::string, std::string>
- std::pair<const std::string, std::string>
. Обратите внимание на const
Вместо того, чтобы угадывать тип элемента карты, вы можете задать его напрямую.
void ask(std::multimap<std::string, std::string>::reference entry) {
// do something...
}
Возможно, было бы неплохо создать псевдоним типа для этого типа карты, чтобы вам не приходилось повторять его
using myMap_t = std::multimap<std::string, std::string>;
void ask(myMap_t::reference entry) {
// do something...
}
int main() {
myMap_t myMap;
for (int i = 0; i < 5; i++) {
myMap.insert(myMap_t::value_type("key", "value"));
}
std::for_each(myMap.begin(), myMap.end(), ask);
}