Cho một chức năng như:Chi phí nào có trong việc thực hiện tăng nhận dạng :: lexical_cast?
template< typename T >
void function1(const T &t)
{
function2(boost::lexical_cast<std::string>(t));
}
Những loại chi phí phát sinh nếu kiểu truyền cho function1
đã là một std::string
?
Chi phí thay đổi, tùy thuộc vào loại tôi là lexical_cast
-ing đến?
Có thừa không để thực hiện chức năng quá tải để bỏ qua dàn diễn viên? Ví dụ .:
void function1(const std::string &t)
{
function2(t);
}
template< typename T >
void function1(const T &t)
{
function1(boost::lexical_cast<std::string>(t));
}
Các phiên bản của tăng chưa có liên quan đến câu trả lời của bạn, như tôi hiểu rằng lexical_cast
đã nhận được một vài tối ưu hóa trên các phiên bản.
Trước hết, không làm chuyên môn về mẫu chức năng, * chỉ quá tải *. – Xeo
@Xeo Điểm tốt [được giải thích tại đây] (http://stackoverflow.com/questions/7108033/template-specialization-vs-function-overloading). Đã chỉnh sửa. –