gpt4 book ai didi

c++ - 如何根据 std::is_same 检查返回不同类型

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:59:13 25 4
gpt4 key购买 nike

<分区>

考虑以下代码:

template<typename T>
T foo() {
if (std::is_same<T, int>::value)
return 5;

if (std::is_same<T, std::string>::value)
return std::string("bar");

throw std::exception();
}

当用 foo<int>() 调用时, 它会抛出一个错误 cannot convert ‘std::__cxx11::string {aka std::__cxx11::basic_string<char>}’ to ‘int’ in return .

我知道解决方案是使用模板特化,但我想知道是否有可能通过 std::is_same 来保持当前机制以检查类型?

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