由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - C++问题
相关主题
请教C/C++小砸了面试,发面题
How to find the size of an array? Thanks.面完G的电面了,忐忑
求教:这个程序为什么不能编译?C++ template
一个C++的问题!一个N个数的int数组如何找到3个majority的数?
C/C++里数组作函数的参数的话应该怎么写?c++ inline问题
heap里面delete一个非root的节点做了一下Google的切木头
问个C++模板定义的问题请教一道题
C++ Q21: size of virtual table请教一个C++问题
相关话题的讨论汇总
话题: printsize话题: type话题: inline话题: sizeof话题: typeid
进入JobHunting版参与讨论
1 (共1页)
m*****n
发帖数: 2152
1
如下的macro怎么用inline function改写?
#define PrintSize(type) \
cout << "size of " << #type << " is " << sizeof(type) << endl;
example:
PrintSize(char); will show "size of char is 1" .
M********5
发帖数: 715
2
#define PrintSize(type) \
do{ \
cout << "size of " #type << " is " << sizeof(type) << endl; \
} while(0)
m*****n
发帖数: 2152
3
?? 这个是inline function?

【在 M********5 的大作中提到】
: #define PrintSize(type) \
: do{ \
: cout << "size of " #type << " is " << sizeof(type) << endl; \
: } while(0)

M********5
发帖数: 715
4
看错题目了
M********5
发帖数: 715
5
inline function难道是考你用template来写?
l********n
发帖数: 54
6
这个 #type 很奇妙,之前没有见过这么用的
A*********r
发帖数: 564
7
函数参数不能变的话,有点难,毕竟C++ 的函数必须是已经定义好type的,即
使是有void指针,也是需要cast才能用的。。
除非写几个不同参数的同一个函数,这样可以达到相同的效果。。

【在 m*****n 的大作中提到】
: 如下的macro怎么用inline function改写?
: #define PrintSize(type) \
: cout << "size of " << #type << " is " << sizeof(type) << endl;
: example:
: PrintSize(char); will show "size of char is 1" .

l********n
发帖数: 54
8
那如何把type作为参数传入inline函数呢?
l********n
发帖数: 54
9
用template只能做到这样,不过#type想不出如何打印出来
#include
using namespace std;
template
inline void PrintSize()
{
cout<<"sizeof "<<" is " << sizeof(T)< }
int main(void)
{
PrintSize();
return 1;
}

【在 M********5 的大作中提到】
: inline function难道是考你用template来写?
x***y
发帖数: 633
10
int a;
typeid(a).name(); //will output int

【在 m*****n 的大作中提到】
: 如下的macro怎么用inline function改写?
: #define PrintSize(type) \
: cout << "size of " << #type << " is " << sizeof(type) << endl;
: example:
: PrintSize(char); will show "size of char is 1" .

l********n
发帖数: 54
11
great! Then, following code should work.
#include
#include
using namespace std;
template
inline void PrintSize()
{
cout<<"size of "<< typeid(T).name()<<" is " << sizeof(T)< }
struct A
{
int a;
double b;
};
int main(void)
{
PrintSize();
PrintSize();
PrintSize();
return 1;
}

【在 x***y 的大作中提到】
: int a;
: typeid(a).name(); //will output int

r**u
发帖数: 1567
12
Here typeid is applied to a variable.
But, you are applying it to a type (T).
Seems not right.
h**k
发帖数: 3368
13
typeid既可以用变量作参数,也可以用类型作参数。

【在 r**u 的大作中提到】
: Here typeid is applied to a variable.
: But, you are applying it to a type (T).
: Seems not right.

x****k
发帖数: 2932
14
The return value of typeid really depends on the implementation of compiler.
sometimes, it returns some weird mangled string.
1 (共1页)
进入JobHunting版参与讨论
相关主题
请教一个C++问题C/C++里数组作函数的参数的话应该怎么写?
一道STL面试题heap里面delete一个非root的节点
今早google电面报告问个C++模板定义的问题
C++ Singleton Template - 编译通不过C++ Q21: size of virtual table
请教C/C++小砸了面试,发面题
How to find the size of an array? Thanks.面完G的电面了,忐忑
求教:这个程序为什么不能编译?C++ template
一个C++的问题!一个N个数的int数组如何找到3个majority的数?
相关话题的讨论汇总
话题: printsize话题: type话题: inline话题: sizeof话题: typeid