Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

When I use clang (10.0.1) to compile that:

#include <iostream>

template <typename ...Args>
void f( int a = 4, Args&&... aArgs )
{
    std::cout << a << std::endl;
}

int main( int argc, char *argv[] )
{
    f( 1, 2 );
    return 0;
}

I get:

main.cpp:4:30: error: missing default argument on parameter 'aArgs'

But standard say about default arguments:

In a function declaration, after a parameter with a default argument, all subsequent parameters must have a default argument supplied in this or a previous declaration from the same scope (since c++11) ...unless the parameter was expanded from a parameter pack or be a function parameter pack.

It is a clang bug?

hint: I try it on gcc and works fine

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
969 views
Welcome To Ask or Share your Answers For Others

1 Answer


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...