Кажется, что вы хотите передать саму функцию Callback<int>
, а не ее возвращаемое значение (которого нет) в конструктор obj
. Так что просто сделайте это:
State<int> obj(10, Callback<int>);
Ваш текущий код на самом деле сначала вызывает Callback(10)
, а затем пытается принять void
«возвращаемое значение», чтобы передать его конструктору obj
. Передача void
не разрешена в C ++, поэтому компилятор жалуется. (Callback(10)
здесь " void expresson ").