相关疑难解决方法(0)

如何使用pre-c ++ 0x(VS2008)实现"Variadic Template"?

我正在使用Visual Studio 2008,我想实现没有变量参数列表的字符串格式化功能.

如何使用pre-c ++ 0x(VS2008)实现"Variadic Template"?

有没有像启动这样实现这个的库?

或者另一种实现方式?

这是我的示例代码.(当然,这不能被遵守,因为我使用的是VS2008.)

bool VarPrint(std::ostringstream& out, const std::string& s) 
{
    std::string::size_type offset = 0;
    if((offset = s.find("%")) != std::string::npos)
    {
        if(!(offset != s.size() - 1 && s[offset + 1] == '%'))
        {
            ASSERT(!"Missing Arguments!");
            return false;
        }
    }
    out << s;
    return true;
}

template<typename T, typename... Args>
bool VarPrint(std::ostringstream& out, const std::string& s, const T& value, const Args&... args) 
{
    std::string::size_type prev_offset = 0;
    std::string::size_type curr_offset = 0;
    while((curr_offset = …
Run Code Online (Sandbox Code Playgroud)

c++ boost variadic-functions variadic-templates

9
推荐指数
2
解决办法
4003
查看次数

使用递归宏来编写函数的参数

是否可以使用递归宏来编写所需数量的函数参数.例如:

void foo( const char (&row1)[3] , const char (&row2)[3] , const char (&row3)[3] )
{
}

void foo( const char (&row1)[3] , const char (&row2)[3] , const char (&row3)[3] , const char (&row4)[3] , const char (&row5)[3] , const char (&row6)[3] )
{
}
Run Code Online (Sandbox Code Playgroud)

我知道引入了可变参数模板来解决这样的问题,但我仅限于C++ 98 ATM.

c++ macros recursion

3
推荐指数
1
解决办法
193
查看次数