【发布时间】:2013-11-28 21:21:25
【问题描述】:
我知道这段代码是邪恶的,我知道我不应该这样做,我知道我会为此在编码器地狱中燃烧,但无论如何:
众所周知,可以将int 用作template parmerer,就像std::get 一样。
我想使用char *
template<char * str>
struct printer {
void operator() () const {
std::cout<<str;
}
};
到目前为止,在this article 的帮助下,我设法编译并运行了这个
template<char ** str>
struct printer {
void operator() () const {
std::cout<< *str;
}
};
extern char * bla;
char * bla = (char *)"bla content";
int main() {
printer<&bla> print;
print();
}
这有两个缺点:
- 双指针
- 我必须定义远离我使用它们的值(字符串内容)
完美就是
printer<"bla"> print;
但是编译器显然不喜欢这样
谁能帮我克服至少后一个“问题”
编辑 我正在使用 g++ 4.8.0
【问题讨论】:
标签: c++ string templates pointers static