При взгляде на некоторый код С++ 03 я нашел экземпляр наиболее неприятного разбора, который смутил меня:
#include <sstream>
#include <string>
int main(int, char** argv)
{
std::stringstream ss(std::string(argv[0]));
}
В приведенном выше фрагменте ss
является объявлением функции, которая принимает std::string*
и возвращает std::stringstream
.
Как std::string(argv[0])
анализируется как std::string*
?
Интуитивно я думал, что argv[0]
был однозначно доступ к argv
.