Использование `std :: variant` для выбора типов после ввода командной строки, возможно ли это вообще?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Использование `std :: variant` для выбора типов после ввода командной строки, возможно ли это вообще?

Сообщение Anonymous »

Я на очень ранней стадии написания программы C ++, реплицирующую самые основные функции команды LS bash. > заголовок.
std :: fileystem :: diefory_iterator и std :: fileSystem :: recursive_directory_iterator из этой библиотеки помочь мне пройти путь ввода файла мелкому или рекурсивным образом соответственно. /code>, который должен состоять из исходного дефиса -, за которым следует буквы, которые поддерживают флаги опций.
flag r означает рекурсивность Переход всех подкаталогов, в противном случае посмотрите только в заданный путь. < /p> - это путь файла для изучения.
Мой вопрос, однако, о том, как запустить это в шаблоне или, если это даже возможно. < br/> В качестве теста я использую std :: variant в функции option_r () , который выбирает правильный Directory_iterator в зависимости от того, в зависимости от того, является ли -р Флаг присутствует на вводе или нет. переопределить ">

Код: Выделить всё

#include 
#include 
#include 
#include 
#include 

#include 
#include 

using namespace std;
using namespace std::filesystem;

template concept isIter =
is_same::value || is_same::value;

template 
dirIterator option_R(std::string_view options, const path &my_path) {
variant my_iter;
if (options.find('R') != string::npos) {
my_iter.emplace(my_path, directory_options::skip_permission_denied);
return get(my_iter);
} else {
my_iter.emplace(my_path);
return get(my_iter);
}
}

template 
void traverse(isIter &my_iter, vector &my_vec) {
cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79449553/use-of-stdvariant-to-select-types-after-command-prompt-input-is-that-even-p[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»