C++ 我应该在这里使用什么样的指针?

C++ 我应该在这里使用什么样的指针?,c++,c++11,C++,C++11,我和一位同事在一个旧的大型代码库上工作。代码库使用了大量的std::shared_ptr,以前的开发人员喜欢使用长的属性名(m_first_username) 我们代码中的某些方法访问了大量这些属性,因此我们的代码往往非常冗长: if(m_first_username->isSomethingOrOther()| | m_second_username->isOtherOrSomething()。。。 因此,为了使代码更具可读性,我的同事希望在本地范围内使用更多的std::shared\u p

我和一位同事在一个旧的大型代码库上工作。代码库使用了大量的
std::shared_ptr
,以前的开发人员喜欢使用长的属性名(
m_first_username

我们代码中的某些方法访问了大量这些属性,因此我们的代码往往非常冗长:

if(m_first_username->isSomethingOrOther()| | m_second_username->isOtherOrSomething()。。。

因此,为了使代码更具可读性,我的同事希望在本地范围内使用更多的
std::shared\u ptr&

const std::shared\u ptr&tmp=m\u first\u username->returnsASharedPtr()
tmp->isSomethingOrOther();

由于共享指针使用计数,我不同意这一点


使此代码更具可读性的最佳方法是什么?继续使用对
shared\u ptr
的常量引用,使用
std::weak\u ptr
或使用长代码行?

根据@nwp的注释-在本地别名变量名的正确方法是:

auto& v1 = m_first_user_name;

如果你想进入“ReurnSnSaldPosiple”的路径,你想在MyFielStIsUrrEngNess类和MySudioUrSyNoLy类中使用的是标准C++。


总体上,虽然它主要是基于意见的,但我相信你会发现,大多数有经验的C++开发者会发现新代码比旧代码更难读。长描述性变量名称没有什么错。

你考虑<代码> TMP- > iStthOnthOrthor()。比
m\u first\u username->isSomethingOrOther()更具可读性
?你能解释一下这个逻辑吗?我个人看不出这段代码的冗长有什么错-它看起来很像我在过去15年中接触过的许多生产代码。如果你真的想通过别名来降低代码的可读性,那么CookiePLMonster的建议对我来说似乎是合理的。
m\u_用户名
看起来是一个合理的名称。没有办法用毫无意义的名称
tmp
引入对共享ptr的奇怪临时引用来提高可读性。重命名变量的正确方法是
auto&new\u name=old\u name;
。希望这能得到完全优化。看起来你只是过度使用了shared_ptr,而不是尝试通过这些技巧来修补代码,您可能想知道为什么这个方法不应该简单地返回指向实例的引用/原始指针。