*强调文本*如何使用 Boost 程序选项从命令行接受单字节变量?
--id1=1 --id2=1结果的命令行参数为id1=49(或 '1', 0x31)和 id2=1。
#include <stdint.h>
#include <iostream>
#include <boost/program_options.hpp>
using namespace std;
int main(int argc, char** argv)
{
(void)argc;
(void)argv;
namespace po = boost::program_options;
const int myargc = 3;
const char* myargv[] = {"foo","--id1=1","--id2=2" };
uint8_t id1;
uint16_t id2; // works as expected.
po::variables_map vm;
po::options_description cmd_options( "Command options" );
cmd_options.add_options()
( "id1", po::value<uint8_t >( &id1 )->default_value( 0 ), "A 1-byte ID" )
( "id2", po::value<uint16_t>( &id2 )->default_value( 0 ), "A 2-byte ID" ) …Run Code Online (Sandbox Code Playgroud) 本文C++/Java程序员对caml.inria.fr网站上的Objective Caml的介绍说...
与C++和Java相反,O'Caml [sic]中的递归与迭代一样有效
对于类似于阶乘的东西,似乎带有可变变量的循环比递归调用所涉及的堆栈操作更有效.
OCaml真的有一种机制使递归比C++和Java更有效吗?