Was ist der Unterschied zwischen void () und void {}?
Grundsätzlich würde ich gerne wissen, warum der Compiler ablehntptr2
Erklärung:
int main() {
// this one works
decltype(void())* ptr1;
// this one does not
decltype(void{})* ptr2;
}
Schauen Sie sich andieser Code wenn du das denkstptr1
ist ein Funktionszeiger:
#include <iostream>
using namespace std;
template <class T>
void f(T t) {
cout << __PRETTY_FUNCTION__ << endl;
}
int main() {
decltype(void())* ptr;
f(ptr);
}
Die Ausgabe istvoid f(T) [with T = void*]
.