C++ 静态\u cast vs boost::词法\u cast
我试图将一个整数连接到一个已知字符串,我发现有几种方法可以实现这一点,其中两种是:C++ 静态\u cast vs boost::词法\u cast,c++,string,boost,casting,C++,String,Boost,Casting,我试图将一个整数连接到一个已知字符串,我发现有几种方法可以实现这一点,其中两种是: int num=13; string str = "Text" + static_cast<ostringstream*>( &(ostringstream() << num) )->str(); 既然我已经知道转换类型(inttostring),那么使用boost::lexical\u cast在任何方面都更有效吗?或者static\u cast是否同样有效,而不必依赖外
int num=13;
string str = "Text" + static_cast<ostringstream*>( &(ostringstream() << num) )->str();
既然我已经知道转换类型(int
tostring
),那么使用boost::lexical\u cast
在任何方面都更有效吗?或者static\u cast
是否同样有效,而不必依赖外部库
string str = "Text" + static_cast<ostringstream*>( &(ostringstream() << num) )->str();
哪一个是最好的选项,前提是编译器支持它
另见IMO,
lexicalcast
的可读性更强。注意,c++11中还有std::to_string()
。在第一个示例中,为什么要强制转换到指针?@KonradRudolph:我最初在回答中没有必要编写强制转换(请参阅编辑历史记录),但似乎操作符@Armen I知道强制转换本身是必需的,但将地址和强制转换转换到指针是复杂的。只是参考一下。这在句法和概念上都更直接。@KonradRudolph:是的,我想演员阵容是必要的,因为ostringstream()的结果。@MikeSeymour:哦,好吧,我没想到。编辑
string str = "Text" + static_cast<ostringstream*>( &(ostringstream() << num) )->str();
string str = "Text" + to_string(num);