2016-09-07 4 views
-1

У меня есть функция, которая называлась от главного из «» метода с теми же аргументами, что главный называли с (int main (int argc, char* argv[]))станд :: make_pair <Const символ *, Int>

std::pair<const char *, int> mtd1 (int argc, char * argv[]){ 
. 
. 
. 
} 

так ARGV [1] является указателем на String (предположим, что он был по крайней мере одним аргументом программы, за исключением argv [0]), но не постоянным указателем, возможно ли еще (а не ошибка) передать argv [1] в оператор return внутри mtd1

return std::make_pair <argv[1],99999 > 

или мне нужно сделать это внутри моего mtd1 Метод

const char *abc = arg[1] 

перед возвращением

return std::make_pair (abc,99999)  <- edited 
+2

Вы пробовали компиляции? –

+0

Можно ли (безопасно) зависеть от того, что передается в 'mtd1'. Кстати, что такое 'String'? – MikeCAT

+0

Вероятно, вы имели в виду 'std :: make_pair' с регулярными, а не угловыми скобками. –

ответ

1

Как делать это безопасный путь?

std::pair<std::string, int> mtd1 (int argc, char * argv[]) 
{ 
. 
. 
. 
} 

и

return std::make_pair (std::string(argv[1]),99999); 

Если вы настаиваете на возвращении std::pair<char*,int>, то это должно работать:

return std::make_pair (argv[1],99999); 
+0

Почему '-1'? Мое предложение ошибочно? –

+0

как вы могли бы сопоставить 'string' с' integer' 'pair mtd1 (int argc, char * argv [])' – someone

+0

@someone Была опечатка. Я починил это. –

Смежные вопросы