编译器如何知道是否调用 const 重载?
How does the Compiler Know Whether to Call the const Overload?
给定 string foo
,当我调用时:
auto bar = foo.begin();
string::begin
有 2 个重载。一个 returns 一个 string::iterator
,另一个 returns 一个 string::const_iterator
。我怎么知道bar
的类型?这只是基于foo
是否是const
吗?
Is this just based on whether foo
is const or not?
是
auto
用于推导 精确类型 *
How to select iterator type using auto variable?间接同意这个回答。
*取自:How do I get a const_iterator using auto?
给定 string foo
,当我调用时:
auto bar = foo.begin();
string::begin
有 2 个重载。一个 returns 一个 string::iterator
,另一个 returns 一个 string::const_iterator
。我怎么知道bar
的类型?这只是基于foo
是否是const
吗?
Is this just based on whether
foo
is const or not?
是
auto
用于推导 精确类型 *
How to select iterator type using auto variable?间接同意这个回答。
*取自:How do I get a const_iterator using auto?