小编Dre*_*rew的帖子

在模板函数中自动将const char []转换为const char*

我遇到模板问题,如果你尝试给模板化函数一个字符串参数,编译器会将"Hello World"解释为const char [12].我希望它是const char*.

我可以通过将每个字符串静态转换为'const char*'来"解决"这个问题,但由于我正在尝试将其用作日志系统的一部分,因此将其简单化是一个很大的目标.

由于很难解释我的意思,我想出了一个简单的复制器.您将看到main函数的最后一行无法编译.

任何帮助将不胜感激

#include <string>

// Trivial base class so we can use polymorphism
class StoreItemsBase
{
public:
    StoreItemsBase() {}
};

// Example of a trivial Templated class to hold some 3 items.
// Intent to have similar classes to hold 4,5..n items
template <typename T1, typename T2, typename T3>
class Store3Items : public StoreItemsBase
{
public:
    Store3Items(const T1& t1, const T2& t2, const T3& t3)
    :
    StoreItemsBase(),
    mT1(t1),
    mT2(t2),
    mT3(t3)
    {}

private:
    T1 …
Run Code Online (Sandbox Code Playgroud)

c++ templates

4
推荐指数
1
解决办法
1434
查看次数

boost program_option不区分大小写的解析

有没有人研究过如何获得boost程序选项来解析不区分大小写的参数列表

在boost文档中,似乎支持它.见http://www.boost.org/doc/libs/1_53_0/boost/program_options/cmdline.hpp

即,设置style_t枚举标志,例如long_case_insensitive.但是,我不知道该怎么做.例如,如何获得以下代码片段来接受--Help或--help或--HELP

    po::options_description desc("Allowed options");
    desc.add_options()
        ("help", "produce help message")
        ("compression", po::value<double>(), "set compression level")
    ;

    po::variables_map vm;        
    po::store(po::parse_command_line(ac, av, desc), vm);
    po::notify(vm);    

    if (vm.count("help")) {
        cout << desc << "\n";
        return 0;
    }
Run Code Online (Sandbox Code Playgroud)

c++ boost boost-program-options

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

标签 统计

c++ ×2

boost ×1

boost-program-options ×1

templates ×1