小编ser*_*rup的帖子

如何制作git push origin --force; 在Visual Studio团队资源管理器中

我最近有一个问题,我不得不忽略我的最后一次提交,所以在命令行上我做了以下事情:

git push origin --force

这工作正常,但我通常从Visual Studio团队资源管理器中进行推/拉,但我无法找到如何 - 从那里强制推送

是否有可能或者只能从命令行完成?

git visual-studio team-explorer

14
推荐指数
2
解决办法
8546
查看次数

我可以不复制就将std :: vector <char>重新解释为std :: vector <unsigned char>吗?

我有一个引用std::vector<char>,希望将其用作接受函数的参数std::vector<unsigned char>。我可以不复制就做吗?

我有以下功能,它可以工作;但是我不确定是否真的要进行复制-有人可以帮我理解吗?是否std::move可以避免复制或是否尚未复制?

static void showDataBlock(bool usefold, bool usecolor,
            std::vector<char> &chunkdata)  
{
  char* buf = chunkdata.data();                      
  unsigned char* membuf = reinterpret_cast<unsigned char*>(buf); 
  std::vector<unsigned char> vec(membuf, membuf + chunkdata.size()); 
  showDataBlock(usefold, usecolor, vec);   
} 
Run Code Online (Sandbox Code Playgroud)

我以为我可以写:

std::vector<unsigned char> vec(std::move(membuf),
                               std::move(membuf) + chunkdata.size());  
Run Code Online (Sandbox Code Playgroud)

这是过度杀伤力吗?实际发生了什么?

c++ stdvector reinterpret-cast

5
推荐指数
2
解决办法
3651
查看次数

如何将可变参数传递给虚函数

我有一个add使用以下设置的工作虚拟功能:

using Func = std::function<std::vector<unsigned char>()>;      

class cfExecutor {
public:
    cfExecutor();
    virtual ~cfExecutor();
    /// Enqueue a function to be executed by this executor. This and all                     
    /// variants must be threadsafe.
    virtual void add(Func) = 0;                              
    virtual void add(std::vector<Variant> params, Func callback) = 0; 
};


class ManualExecutor : public cfExecutor                                                                            
{                                                                                                                   

    std::mutex lock_;             // avoid multiple entity updating the function container                          
    std::queue<Func> funcs_;      // functions queued for running                                                 

    public:                                                                                                         
    std::map<int8_t, Func> funcs; // Function container (priority,Func) - added …
Run Code Online (Sandbox Code Playgroud)

c++ variadic-functions std-function

5
推荐指数
1
解决办法
1156
查看次数

如何从 std::vector 转换为 args

我有一个函数,它接受多个参数,如下所示:

void test(const auto&...args)
{
   typedef boost::variant<int, float, std::string> Variant;
   std::vector<Variant> vec = {args...}
}
Run Code Online (Sandbox Code Playgroud)

这很好用 - 根据 Variant,参数在向量中作为不同类型

我想从类似的向量中获取参数并将其放回一个接受 args 的函数中...

像这样:

args = vec;
test2(args);

void test2(const auto&...args);
Run Code Online (Sandbox Code Playgroud)

如何才能做到这一点?

c++ vector variadic-functions

5
推荐指数
2
解决办法
4521
查看次数

Windows上的C++ 17是否与ubuntu上的C++ 17一致?

我试图移植一些我在ubuntu上制作的C++ 17代码(gnu ++ 11)

typedef boost::variant<int, float, std::string > Variant;
using Func = std::function<std::vector<unsigned char>(std::vector<Variant>)>;  

void addexecutorfunc( Func callback, const auto&...args )
{
    std::vector<Variant> vec = {args...}; 
    executor.add(vec, std::move(callback));
}
Run Code Online (Sandbox Code Playgroud)

这段代码在ubuntu上编译和工作正常,但是当尝试使用visual studio 2017(v141)[ISO C++最新草案标准(/ std:c ++ latest)]在Windows上编译时,我得到以下内容:

错误C3533:参数不能包含'auto'的类型

我想也许它与在当前的C++ 17版本中没有实现的Concepts lite有关,或者这是错的?

如果我可以设置编译器使用auto作为参数和参数包,那么这将是最好的,但如果这是不可能的,那么我将不得不重写我的代码遵循C++ 17 windows标准 - 任何关于如何做的建议这没有在模板地狱中结束

c++ visual-studio c++-concepts c++17

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