小编sch*_*tbi的帖子

Git:Cherry-Pick到工作副本而不提交

我有几个分支机构,我会保留某些提交,我希望不时地将其应用于我的工作副本.最初我尝试过挑选但我不希望稍后在目标分支中进行提交.

所以我做了cherry-pick+reset HEAD~1 --soft

是否有更简单的东西像樱桃采摘到工作副本?

git

151
推荐指数
5
解决办法
4万
查看次数

为什么我不能在C++中的`std :: map`中存储引用?

我强调引用不是指针,而是对象的别名.但是,我仍然不明白这对我作为一个程序员究竟意味着什么,即什么是引擎盖下的引用?

我认为理解这一点的最好方法是理解为什么我不能在地图中存储引用.

我知道我需要停止将引用视为指针的语法,只是不确定如何:/

c++ dictionary reference stdmap std

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

Subversion:如何找到bug提交?

我有一个问题,有人介绍了一个错误,但我不知道引入此错误的subversion提交.我正在寻找像svn 的好的git功能bisect.

有没有人知道像python这样的脚本来模拟这个功能?

svn

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

检查DLL文件是否是C#中的CLR程序集的最佳方法

检查DLL文件是Win32 DLL还是CLR程序集的最佳方法是什么?目前我使用此代码

    try
    {
        this.currentWorkingDirectory = Path.GetDirectoryName(assemblyPath);

        //Try to load the assembly.
        assembly = Assembly.LoadFile(assemblyPath);

        return assembly != null;
    }
    catch (FileLoadException ex)
    {
        exception = ex;
    }
    catch (BadImageFormatException ex)
    {
        exception = ex;
    }
    catch (ArgumentException ex)
    {
        exception = ex;
    }
    catch (Exception ex)
    {
        exception = ex;
    }

    if (exception is BadImageFormatException)
    {
        return false;
    }
Run Code Online (Sandbox Code Playgroud)

但我喜欢在加载前检查,因为我不想要那些例外(时间).

有没有更好的办法?

c# dll .net-assembly

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

ExprTk中的简单数学表达式

我试图使用一个简单的表达式,如下所示,结果应该是z的值变为1.但是,似乎没有任何关于如何解决这个问题的建议?

template<typename t>
void MyTestB()
{

    t x = 1.0;
    t z = 0;

    std::string e = "if((x + 2) == 3){z=1;}";
    exprtk::symbol_table<t> symbol_table;
    symbol_table.add_variable("x",x);
    symbol_table.add_variable("z",z);

    exprtk::expression<t> expression;
    expression.register_symbol_table(symbol_table);


    exprtk::parser<t> parser;

    parser.compile(e,expression);
    t y = expression.value();
    std::cout << z;
}
Run Code Online (Sandbox Code Playgroud)

程序确实在y = NAN完成(这是可以理解的,因为表达式是条件语句)但是z仍然是0.我期待它变为1

c++ exprtk

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

在Git中扁平旧历史

我有一个已经运行了一段时间的git项目,现在我想抛弃旧历史,比如说从现在开始到两年前.丢掉我的意思是用一次提交做同样的事情来替换这段时间内的多次提交.

我查了git rebase -i但是这并没有删除包含git所有提交的其他(完整)历史记录.

这里是图形表示(d是变更集):

(base) -> d1 -> d2 -> d3 -> (HEAD)
Run Code Online (Sandbox Code Playgroud)

我想要的是:

(base) -> d1,d2 -> d3 -> (HEAD)
Run Code Online (Sandbox Code Playgroud)

怎么可以这样做?谢谢.

编辑

我得到了它

git rebase -i cd1e8c9
Run Code Online (Sandbox Code Playgroud)

使用cd1e8c9作为压缩的起始修订版(基础).然后我使用fixup将修订版本合并在一起.谢谢.

git git-rebase

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

如何在Visual Studio 2010 for Linux中编译

是否可以使用Visual Studio 2010(不一定是MSVC编译器)在Windows上开发C/C++并获得可以上传到Linux机器(并运行它)的二进制文件?

我检查的可能性是使用MinGW或类似的东西让Windows二进制文件执行与linux二进制文件相同的操作,但我遇到了所有需要的库(posix)的所有win-ports的问题.

编辑:我不想让Windows二进制文件在Linux上运行.结果我需要一个原生的Linux二进制文件.

c++ linux visual-studio-2010

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

ExprTk具有更高的精度

我试图编译ExprTk库的精度比long double.我认为简化会尝试GCC,__float128但我得到以下编译错误,我不知道如何纠正它.

exprtk.hpp: In instantiation of ‘static T exprtk::details::and_op<T>::process(exprtk::details::and_op<T>::Type, exprtk::details::and_op<T>::Type) [with T = __float128; exprtk::details::and_op<T>::Type = const __float128&]’:
exprtk.hpp:28439:10:   required from ‘void exprtk::parser<T>::load_binary_operations_map(exprtk::parser<T>::binary_op_map_t&) [with T = __float128; exprtk::parser<T>::binary_op_map_t = std::map<exprtk::details::operator_type, __float128 (*)(const __float128&, const __float128&), std::less<exprtk::details::operator_type>, std::allocator<std::pair<const exprtk::details::operator_type, __float128 (*)(const __float128&, const __float128&)> > >; typename exprtk::details::functor_t<T>::bfunc_t = __float128 (*)(const __float128&, const __float128&)]’
exprtk.hpp:15660:51:   required from ‘exprtk::parser<T>::parser(std::size_t) [with T = __float128; std::size_t = long unsigned int]’
mathtof.cpp:18:33:   required from here
exprtk.hpp:9923:105: error: call of overloaded ‘is_true(const …
Run Code Online (Sandbox Code Playgroud)

c++ templates c++11 exprtk

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

从另一个文件加载App.Config的部分

我喜欢将我app.config分成用户特定部分和特定于应用程序的部分.是否可以将其中一部分存储app.config在另一个文件中?

我已经尝试过了:

<!DOCTYPE cruisecontrol [<!ENTITY email SYSTEM "email.config">]  >
Run Code Online (Sandbox Code Playgroud)

但这不会加载.

还有其他可能性而不改变应用程序本身吗?

c# configuration app-config

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

在多线程程序中使用exprtk

我需要编写一个程序,其中频繁地评估字符串表达式.表达式的示例如下:

"x0*a0*a0+x1*a1+x2*a2+x3*a3+x4*a4....."
Run Code Online (Sandbox Code Playgroud)

表达式可以很长,字符串可以包含多个这样的表达式.

我使用C++库exprtk编写了一些测试代码.

vector<std::string> observation_functions;
vector<std::string> string_indices;


template<typename T>
float* get_observation(float* sing_j, float* zrlist, int num_functions,int num_variables)
{
    //omp_set_nested(1);

    float* results = (float*)malloc(sizeof(float)*num_functions);
    exprtk::symbol_table<float> symbol_table;

    exprtk::expression<T> expression;
    exprtk::parser<T> parser;
    int i;
    for( i = 0; i < num_variables; i++)
    {
            symbol_table.add_variable("x"+string_indices[i], sing_j[i]);
            symbol_table.add_variable("a"+string_indices[i], zrlist[i]);
    }

    expression.register_symbol_table(symbol_table);
    for(i = 0; i < num_functions; i++)
    {
            parser.compile(observation_functions[i],expression);
            results[i] = expression.value();
    }
    return results;
}



int main()
{

    for( int i = 0; i < 52; i++)
    {

    ostringstream s2;
    s2<<i;
    string_indices.push_back(s2.str()); …
Run Code Online (Sandbox Code Playgroud)

c++ performance multithreading openmp exprtk

11
推荐指数
2
解决办法
1065
查看次数