【发布时间】:2013-05-04 18:22:14
【问题描述】:
我有以下实用函数将给定的字符串转换为整数。
class convertToInt:public std::unary_function<const char*, int>
{
public:
int operator()(const char* cNumber)
{
try
{
int result = boost::lexical_cast<int>(cNumber);
return result;
} catch ( boost::bad_lexical_cast& error)
{
std::cerr << "Error in converting to number "<< error.what() << std::endl;
return -1;
}
}
};
当我想实际使用这个实用功能时,我必须执行以下操作。
convertToInt cStrToInt;
int iNumberToCheck = cStrToInt(argv[1]);
我只是想知道,有没有办法,我可以直接调用
int iNumberToCheck = convertToInt(argv[1]);
【问题讨论】:
-
int iNumberToCheck = convertToInt()(argv[1]);??? -
谢谢老兄。欣赏它。
-
请注意,这仍然会创建一个临时对象,因为实际上“convertToInt()”会创建一个 convertToInt 对象。因此创建全局函数对象的效率不会降低。