小编rou*_*ier的帖子

如何为所有basic_string实例编写通用模板

我想写一个这样的模板.

template <char c,typename Options, 
   basic_string<class,class,class> Options::* member> 
   struct option_string;
Run Code Online (Sandbox Code Playgroud)

但是我不断收到编译错误.我想知道如何编写一个带有三个选项的模板:a char,任何类和指向该类成员的指针,该类必须是特化basic_string.我想避免为每个专业化编写模板basic_string.

我的目标是创建一个通用的命令行选项库.以下是我想如何使用它.

class Options : public Command_Line_Options_Parser<Options> {
public:
  int integer = 0;
  float real_number = 0.0;
  bool boolean = false;
  bool make_true = false;
  bool make_false = true;
  std::string string;
  typedef Options O;
  typedef Command_Line_Options<
            option_int<'i',&O::integer>,
            option_float<'f',&O::real_number>,
            option_bool<'b',&O::boolean>,
            option_true<'t',&O::make_true>,
            option_false<'t',&O::make_true>,
            option_string<'s',&O::string>
           >
  option_list;
};

int main(int argc,char**argv ) {

  Options options;

  options.parse(argc,argv);
  std::cout << "integer : " << options.integer <<endl;
  std::cout << "real_number …
Run Code Online (Sandbox Code Playgroud)

c++ templates c++11

2
推荐指数
1
解决办法
352
查看次数

标签 统计

c++ ×1

c++11 ×1

templates ×1