struct LocalParam {
LocalParam(size_t s) : size_(s) {}
size_t size_;
};
template <class T>
size_t size(const T&) {
return sizeof(T);
}
template <>
size_t size(const LocalParam& l) {
return l.size_;
}
template <class T>
void* ptr(const T& l) {
return (void*)&l;
}
template <>
void* ptr(const LocalParam& l) {
return nullptr;
}
template <class T>
void print(const T&n) {
printf("T: %d, %p\n",size(n), ptr(n));
}
void TestLocalParamSize() {
int n;
LocalParam l(1024);
print(n);
print(l);
print(1024ul);
}