gpt4 book ai didi

c++ - boost::lexical_cast 如何只采用一种模板类型?

转载 作者:太空狗 更新时间:2023-10-29 19:49:42 25 4
gpt4 key购买 nike

我查看了 lexical_cast.hpp 的困惑情况,但它仍然让我无法理解。

lexical_cast 的“基本定义”采用模板源和目标,如何能够接受诸如 lexical_cast<int>("7") 之类的语法? ?我不明白它怎么只需要一个模板化的返回类型,而不需要你在不做一些非法的事情的情况下给出参数的类型,比如部分模板特化。

注意:我理解如何使用单一模板类型和不同参数的重载来做到这一点,但我不明白 lexical_cast 是如何基于同时需要源和目标模板类型的模板函数的。

最佳答案

模板参数可以从函数参数推导出来:

template <typename T>
void foo(const T& x)
{
// T is the type of X
}

foo(5); // T is be int
foo("hello"); //T is const char[6]

关于c++ - boost::lexical_cast 如何只采用一种模板类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7136400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com