相关疑难解决方法(0)

我什么时候使用哪种指针?

好吧,所以我最后一次以C++为生,std::auto_ptr所有的std lib都可用,而且boost::shared_ptr风靡一时.我从未真正研究过提供的其他智能指针类型.我知道C++ 11现在提供了一些类型的提升,但不是全部.

那么有人有一个简单的算法来确定何时使用哪个智能指针?优选地包括关于哑指针(诸如原始指针T*)和其他增强智能指针的建议.(像这样的东西会很棒).

c++ pointers smart-pointers c++-faq c++11

224
推荐指数
4
解决办法
3万
查看次数

实现C++ 14 make_integer_sequence

我尝试实现C++ 14别名模板make_integer_sequence,这简化了类模板的创建integer_sequence.

template< class T, T... I> struct integer_sequence
{
    typedef T value_type;
    static constexpr size_t size() noexcept { return sizeof...(I) ; }

};

template< class T, T N>
using make_integer_sequence = integer_sequence< T, 0,1,2, ... ,N-1 >; // only for illustration.
Run Code Online (Sandbox Code Playgroud)

为了实现,make_integer_sequence我们需要一个辅助结构make_helper.

template< class T , class N >
using make_integer_sequence = typename make_helper<T,N>::type;
Run Code Online (Sandbox Code Playgroud)

实施make_helper并不太难.

template< class T, T N, T... I >
struct make_helper
{
   typedef …
Run Code Online (Sandbox Code Playgroud)

c++ gcc c++11 c++14

47
推荐指数
3
解决办法
2万
查看次数

什么是C++ 11可变参数模板中的va_arg()?

我已经阅读了一些关于这个新的C++ 11功能的文章,但是我并不了解所有的东西(我是C++的新手).如何在C中使用va_argfrom stdarg.h来访问特定的参数?

template <typename ... Args>
void f(Args ... args)
{
    for(size_t i = 0; i < sizeof ...(args); i++)
    {
        // obviously, args...[i] didn't work...
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ templates clang variadic-templates c++11

6
推荐指数
1
解决办法
1623
查看次数