Добавьте шаблон функции, не являющийся членом.
template void serialize(stream& s, T& t) {}
Вот демонстративная программа:
#include
template void serialize(stream&, type&)
{
std::cout << "Came to 1\n";
}
struct stream
{
void serialize(int ) {}
};
// struct foo
struct foo {
int bar;
};
// serialize foo
template void serialize(stream& s, foo& f) {
std::cout << "Came to 2\n";
s.serialize(f.bar);
}
struct bar {
};
int main()
{
// ...later in source file:
foo f;
stream s;
serialize(s, f);
bar b;
serialize(s, b);
}
и ее вывод в cygwin / g ++ 6.4.0:
Came to 2
Came to 1
Он также работает на ideone.com .
Я обнаружил, что проблема была в формате домена, который я передавал почтовому оружию.
Раньше у меня было следующее:
const mailgun = require('mailgun-js')({
apiKey: 'XXXXXXXXXX',
domain: 'https://api.mailgun.net/v3/XXXXXXXXX'
})
Проблема в том, что значение для domain
не должно включать в себя https://api.mailgun.net/v3/
часть URL. Вместо этого он должен иметь ТОЛЬКО ваш домен, например mail.mydomain.com
Вы прикрепили свою кредитную карту к учетной записи mailGun
? Или, если вам просто нужно проверить свою логику, в вашем аккаунте settings
вам следует подтвердить любой адрес электронной почты, на который будут приходить письма с mailgun