相关疑难解决方法(0)

在C++中使用"super"

我的编码风格包括以下习语:

class Derived : public Base
{
   public :
      typedef Base super; // note that it could be hidden in
                          // protected/private section, instead

      // Etc.
} ;
Run Code Online (Sandbox Code Playgroud)

这使我能够使用"super"作为Base的别名,例如,在构造函数中:

Derived(int i, int j)
   : super(i), J(j)
{
}
Run Code Online (Sandbox Code Playgroud)

或者甚至在其重写版本中从基类调用方法时:

void Derived::foo()
{
   super::foo() ;

   // ... And then, do something else
}
Run Code Online (Sandbox Code Playgroud)

它甚至可以链接(我仍然可以找到它的用途):

class DerivedDerived : public Derived
{
   public :
      typedef Derived super; // note that it could be hidden in
                             // protected/private section, instead

      // Etc.
} ; …
Run Code Online (Sandbox Code Playgroud)

c++ coding-style

192
推荐指数
8
解决办法
15万
查看次数

N2965的状态是什么 - std :: bases和std :: direct_bases?

我正在编写一个模板,它真正需要了解其参数类型的所有基类.该std::bases提议特点N2965非常适合这一点,但是我无法找到有关其状态的任何可靠的信息.

这个提案还活着吗?如果是这样,我们什么时候可能会看到它,标准化?如果没有,是否有任何其他提议可以提供这种能力?

作为后续,G ++具有可作为两个N2965特质std::tr2::basesstd::tr2::direct_bases.Clang和/或Intel是否有任何可以提供同等功能的扩展?

c++ c++11 c++-tr2

12
推荐指数
1
解决办法
1843
查看次数

标签 统计

c++ ×2

c++-tr2 ×1

c++11 ×1

coding-style ×1