Я хочу сделать что-то вроде этой игрушкой программы:Назначить шаблон функции для повышения :: функции
#include <boost/function.hpp>
#include <iostream>
template <typename T>
void func1(T& g) {
std::cout << 1;
}
template <typename T>
void func2(T& g) {
std::cout << 2;
}
int main() {
boost::function<void(int)> f;
int k;
std::cin >> k;
if (k == 1)
f = func1 <int> ;
else
f = func2 <int> ;
}
Но этот код не работает, и он говорит, что «оператор =» не ясно. Есть ли какие-нибудь методы, которые я могу сделать примерно так?
Пожалуйста, сообщите точную ошибку. Я [не могу воспроизвести его] (http://coliru.stacked-crooked.com/a/3f6ca5d62f89e4b6) на Coliru. – chris
Извините, это ошибка C2593 «operator =» неоднозначна –