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 6922997
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 27, 20262026-05-27T10:28:44+00:00 2026-05-27T10:28:44+00:00

Environment: Microsoft Visual Studio 2010 Coding standard: C++0x compatible I have a class template

  • 0

Environment: Microsoft Visual Studio 2010

Coding standard: C++0x compatible

I have a class template

template <typename T1, int I>
class A
{
    public template <typename T2> void f(T2 x);
    /*...*/
};

template <typename T1, int I>
template <typename T2>
void A<T1, I>::f(T2 x)
{
    /*...*/
}

and partial specialization of above class

template <int I>
class A<char, I>
{
    public template <typename T2> void f(T2 x);
    /*...*/
};

Then can I specialize member function in the partially specialized class like below?

template <int I>
template <>
void A<char, I>::f<double>(double x)
{
}

Thanks!

NB: I’m not working on it but thinking if it’s applicable or not. Easy rating if you know about the rule.

  • 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-27T10:28:45+00:00Added an answer on May 27, 2026 at 10:28 am

    This is invalid because you cannot explicitly specialize a member function without also giving fixed template arguments to any enclosing class template.

    Not C++11 compatible, but working on MSVC

    The Microsoft compiler has an extension that allows to declare explicit specializations within class templates though. Even though I have never tried it, chances are good that it will accept the following non-standard code

    template <int I>
    class A<char, I>
    {
        public:
        template <typename T2> void f(T2 x);
    
        template<> void f<double>(double x) {
    
        }
        /*...*/
    };
    

    Update: Clang compiles this and reports

    // clang++ -fms-extensions main1.cpp
    main1.cpp:10:21: warning: explicit specialization of 'f' within class scope is a
                     Microsoft extension [-Wmicrosoft]
    
      template<> void f<double>(double x) {
                      ^
    

    C++11/C++03 compatible

    The way here is overloading instead of specialization

    template <int I>
    class A<char, I>
    {
        public:
        template <typename T2> void f(T2 x);
    
        void f(double x) {
    
        }
        /*...*/
    };
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

My coding environment: the compiler is Microsoft Visual Studio C++ 2008. Okay, I have
I want to create the webpart in Visual studio 2010/2008 environment with microsoft given
I have a following batch file echo Setting visual studio 2010 environment variables set
My current preferred C++ environment is the free and largely excellent Microsoft Visual Studio
Environment: Team Foundation Server 2005 Visual Studio 2008 I have a reasonably large project
I have developed a word 2007 add-in using Visual Studio 2010, everything is working
I am working on Microsoft Visual Studio environment. I came across a strange behavior
My environment consists of Visual Studio 2010 and Windows 7 a few months ago
I have created a very simple window service using visual studio 2010 and .NُET
I'm very beginner for developping. environment is .. Windows XP Professional SP3 Microsoft Visual

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.