c++typesconstructortypedefdisambiguation

C++ : Make multiple constructors with the same argument types


I would like to make a class with several constructors of the same type. As this is not directly possible, is there a simple way to define readable "dummy" types such as the class could look like:

class Myclass
{
    MyClass(Orange, std::string & name, float size);
    MyClass(Apple, std::string & name, float size);
    MyClass(Banana, std::string & name, float size);
}

I could define Orange, Apple and Banana as struct typedefs, but is there a more convenient way?

Thanks


Solution

  • The standard library does this in various places actually, for example std::piecewise_construct_t. Their standard is to provide...

    struct something_t {};
    
    constexpr something_t something = something_t();