返回信息流- 代码风格类似以下
```
#define MACRO_TEST(type, name) \
class Macro_test##name: public Macor_test_base \
{ \
public: \
Macro_test##name() { ... } \
void test_foo1() { ... } \
void test_foo2() { ... } \
};
```
这是一条镜像帖。来源:北邮人论坛 / cpp / #93062同步于 2016/8/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
在公司看代码碰到用宏写类的,还被旁边的哥们各种吐槽
jh1
2016/8/12镜像同步10 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
如果是那?不是又怎样?
【 在 shan10211865 (?=? ? ??||落雨大||水浸街||担柴上街卖) 的大作中提到: 】
: Macor_test_base也是用的宏吗?
不太卫生,但很多C艹程序都这么写。比如Chrome浏览器。
顺便来安利一下我们Rust的卫生的宏。
use std::fmt;
macro_rules! define_named_type {
($name:ident, $ty:ident) => {
struct $name {
name: String,
value: $ty
}
impl fmt::Display for $name {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "<{}: {}>", self.name, self.value)
}
}
}
}
define_named_type!(NamedInt32, i32);
define_named_type!(NamedString, String);
fn main() {
let foo = NamedInt32 {
name: String::from("foo"),
value: 42
};
let bar = NamedString {
name: String::from("bar"),
value: String::from("I am a string")
};
println!("{}", foo);
println!("{}", bar);
}