#include<iostream>
#include<stack>
struct Node
{
double r=0;
explicit Node(double rr): r(rr) {}
explicit Node(bool bb): r(-1.0) {}
};
int main()
{
std::stack<Node> st;
double r=10.0;
st.emplace(&r);
std::cout<<st.top().r<<std::endl;
}
Код компилируется, печатает -1, но я не понимаю почему. Каким образом st.emplace(double*) вызывает конструктор Node(bool), даже если он explicit?