Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 静态\u cast vs boost::词法\u cast_C++_String_Boost_Casting - Fatal编程技术网

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
to
string
),那么使用
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);