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

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T15:25:36+00:00 2026-05-11T15:25:36+00:00

I have a templated function fct that uses some complex data structure based on

  • 0

I have a templated function fct that uses some complex data structure based on the template parameter. It also calls some helper functions (templated on the same type) that are in a separate helpers namespace and use the same complex data structure. Now it gets really ugly because we cannot make one typedef for the complex type that all functions can access:

namespace helpers {   template<class T>   void h1(const std::vector< std::vector< std::map<T, std::set<T> > > >& bar){     // ...   } }  template<class T> void fct(const std::vector< std::vector< std::map<T, std::set<T> > > >& bar){   // ...   helpers::h1(bar); } 

Now I want to make it prettier, by using one typedef that all functions can use.

A templated typedef would be nice, but it’s not allowed:

template<class T>  typedef std::vector< std::vector< std::map<T, std::set<T> > > > Bar; 

Another solution would be, I think, to wrap all these functions in a templated namespace, but that’s not allowed in C++ either (I heard it will be in `C++0x’ …).

We have of course templated classes, but note that I don’t really want the user to have to construct an object and call member functions on it. So the workaround I ended up using was to use a templated class where all member functions are static:

template<class T> class All {    typedef std::vector< std::vector< std::map<T, std::set<T> > > > Bar;    static void fct(const Bar& bar){     // ...     h1(bar);   }  private:   static void h1(const Bar& bar){     // ...   } }; 

My question is: It’s probably a bit funny if large parts of my code are organized like that? After all it’s a bit unusual to have many classes with just static member functions? Are there other solutions/workaround that make the ‘templated typedef’ / ‘templated namespace’ possible?

  • 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. 2026-05-11T15:25:37+00:00Added an answer on May 11, 2026 at 3:25 pm

    Are there other solutions/workaround that make the ‘templated typedef’ / ‘templated namespace’ possible?

    GOTW #79: Template Typedef

    The New C++ Typedef Templates (See Section 1: The Problem and Current Workarounds)

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 119k
  • Answers 119k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer The JSOM open source OpenStreetMap Java editor project is using… May 11, 2026 at 11:49 pm
  • Editorial Team
    Editorial Team added an answer The problem I had was that I was releasing NSManagedObjects… May 11, 2026 at 11:49 pm
  • Editorial Team
    Editorial Team added an answer It will find all the controls that exist when you… May 11, 2026 at 11:49 pm

Related Questions

Is it possible to establish a set of templated function pointers, without the hassle
I have a smart pointer type, and would like to construct an object that
I have a templated class defined (in part) as template <class T> MyClass {
I'm trying to get my head around why the following doesn't work. I have

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

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.