Get the App
SLTechnology News&Howtos  ›  Internet Technology  › 

How does C++ put non-dependent class template members into non-template base classes

Shulou Source: shulou.com Published: 2022-06-01 20:49:27 09月30日 Update

This article mainly explains how C++ puts non-dependent template members into non-template base classes. Interested friends may wish to take a look. The method introduced in this paper is simple, fast and practical. Let's let Xiaobian take you to learn "C++ how to put non-dependent class template members into non-template base classes"!

T.62: Putting non-dependent template members into non-template base classes

Reason

Allow the base class members to be used without specifying template arguments and without template instantiation.

Allows base class members to be used without defining template parameters and instantiating templates.

Example

template

class Foo {

public:

enum { v1, v2 };

// ...

};struct Foo_base {

enum { v1, v2 };

// ...

};

template

class Foo : public Foo_base {

public:

// ...

(Note)

A more general version of this rule would be "If a class template member depends on only N template parameters out of M, place it in a base class with only N parameters. " For N == 1, we have a choice of a base class of a class in the surrounding scope as in T.61.

A more general version of this rule is that if a template class member depends only on N template parameters other than M, put it in a base class that contains only N parameters. For the case N==1, we can select the base class of a class in the peripheral scope, as in T.61.

At this point, I believe everyone has a deeper understanding of "how C++ puts non-dependent template members into non-template base classes," so let's actually operate it! Here is the website, more related content can enter the relevant channels for inquiry, pay attention to us, continue to learn!

Tags: Templates members Clippers parameters content situation learning practical deeper function interest reason practicality practicality simple operation method more friends examples website Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno Linux MariaDB MySQL OPPO Reno Shulou Tech Info