Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6973335
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 27, 20262026-05-27T17:05:42+00:00 2026-05-27T17:05:42+00:00

I have a question related to a template class implementation design. A template AT

  • 0

I have a question related to a template class implementation design.

A template AT can be specialized with template parameters A1 and A2 only:

AT<A1> a;

or

AT<A2> a;

The template has a function that may use B1 and B2 classes. Specifically, when the template is specialized with A1 class, the function should use B1 and for A2, B2 should be used.
For example:

template< class T > class AT : public A
{
  int size;

  public:
    int f()
    {
        if ( dynamic_cast<A1*> this != 0 ) {
            size = sizeof( B1 );
        }
        else {
            size = sizeof( B2 );
        }
    }

    ...
};

As B1 and B2 are classes related to internal A1 and A2 implementation, it is preferably to not make end user aware about their existence, so specialization of the template like

AT<A1, B1> a;

is not acceptable.

What is the best way to design such template class and permit internal differentiation based on the class that the template was specialized with?

Thank you!

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-27T17:05:43+00:00Added an answer on May 27, 2026 at 5:05 pm

    You can create a simple type trait to map the types it:

    template <typename T>
    struct B_type;           // Generic type mapping declaration (undefined)
    template <>
    struct B_type<A1> {      // Mapping of A1 -> B1
       typedef B1 type;
    };
    template <>
    struct B_type<A2> {      // Mappint of A2 -> B2
       typedef B2 type;
    };
    

    And then use it internally:

    template <typename T>
    int AT<T>::f() {
       return sizeof( typename B_type<T>::type );
    }
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have following event class. I have a question related to the Property method
I have a simple question related to one-line programming. First an example: function test(a)
Another question related to this one . I have a List<SortableObjects> that is the
I have a template class that contains a std::map that stores pointers to T
This is related to my last question . I have an application that I
I have question related to what is done in SMS application is if i'm
I have a question related to how relative paths are interpreted in various environments
I have a question related to this one . I don't want to do
I have a question related to this one : I'm trying to attach an
I have a question related to understanding of how python dictionaries work. I remember

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.