小编chi*_*ila的帖子

我如何拉到裸存储库?

我有一个"主"裸存储库和一个"个人"裸存储库.我想将更改从"主"更新为"个人",所以我运行:

$ git pull
fatal: /home/gimenero/applib/git/libexec/git-core/git-pull cannot be used without a working tree.
Run Code Online (Sandbox Code Playgroud)

如何将更改推送到"主"?

git

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

如果进程是SIGKILLed,OS(POSIX)是否刷新内存映射文件?

如果使用SIGKILL终止进程,它对内存映射文件所做的更改是否会刷新到磁盘?我假设如果操作系统确保在通过SIGKILL终止进程时将内存映射文件刷新到磁盘,那么它也将使用其他终止信号(SIGABRT,SIGSEGV等等)执行此操作.

c c++ unix linux posix

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

Go 没有 const 限定符的基本原理是什么?

我是一名 C++ 高级程序员。我目前正在做一些 Go 编程。我真正想念的唯一功能是 const 限定符。在go中,如果你想修改一个对象,你就传递它的指针。如果您不想修改它,则按值传递它。但是如果结构很大,你应该通过指针传递它,它覆盖了无修改功能。更糟糕的是,您可以按值传递一个对象,但如果它包含一个指针,您实际上可以修改其内容,这会带来可怕的竞争条件危险。某些语言类型(如地图和切片)具有此功能。这发生在一种应该为并发构建的语言中。所以避免修改的问题在 Go 中真的不存在,你应该传递小对象不包含指针的 (您必须知道对象不包含指针)按值,如果它们不会被修改。

使用 const,您可以通过 const 指针传递对象,而不必担心修改。类型安全是关于拥有允许速度并防止与类型相关的错误的契约。执行此操作的另一个功能是 const 限定符。

go

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

无法引用嵌套在模板参数中的模板名称

我有以下代码:

template <typename Provider>
inline void use()
{
    typedef Provider::Data<int> D;
}
Run Code Online (Sandbox Code Playgroud)

我基本上试图使用一些'Provider'类的模板类成员'Data',应用于'int',但是我得到以下错误:

util.cpp:5: error: expected init-declarator before '<' token
util.cpp:5: error: expected `,' or `;' before '<' token
Run Code Online (Sandbox Code Playgroud)

我在Solaris系统上使用GCC 4.3.3.

c++

8
推荐指数
2
解决办法
376
查看次数

将提交从一个分支移动到另一个分支,然后将它们合并回来

我有一棵树:

       /--b1---b2 <-- topic b
      /    
a1---a2 <-- topic a
Run Code Online (Sandbox Code Playgroud)

其中'b'取决于'a'.然后我意识到我需要做一些与主题'a'相关的更改以继续'b',但我想在'b'上做它们作为'b'的正常开发过程:

       /--b1---b2---a3---a4---b3---b4---a5---b5 <-- topic b
      /    
a1---a2 <-- topic a
Run Code Online (Sandbox Code Playgroud)

然后,当我想在'b'上完成的事情完成时,我希望我的树看起来像这样:

       /--b1---b2--------m---b3'---b4'---b5' <-- topic b
      /                 /
a1---a2---a3'---a4'---a5' <-- topic a
Run Code Online (Sandbox Code Playgroud)

好像我实际上对'a'进行了所有更改,然后将它们合并在'b'上,然后继续'b'.

我知道我可以手动执行此操作:

1- rebase/cherry-pick'a'从分支'b'提交到'a'2-在'b'上
创建一个时间分支'b-tmp'.
3-将分支'b'重置为'b2'.
4-将'a'合并到'b'上.
5- rebase/cherry-pick'b'从'b-tmp'提交到'b'.
6-删除分支'b-tmp'.

我可以创建一些脚本来执行此操作,我只想知道是否有更好的方法/想法来执行此操作,除了这6个步骤.

git

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

使用Clang 3.4编译时的最大错误数

当我尝试使用带有clang ++的'-fmax-errors'标志时,会输出以下警告:

clang: warning: argument unused during compilation: '-fmax-errors=2'
Run Code Online (Sandbox Code Playgroud)

什么是铿锵声?

c++ llvm clang

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

如何找到两个整数类型的最大(大小)?

例如:

template <typename Type1, typename Type2>
void fun(const Type1 &v1, const Type2 &v2)
{
    largest<Type1, Type2>::type val = v1 + v2;
    .
    .
    .
};
Run Code Online (Sandbox Code Playgroud)

我想知道某个地方是否有"最大",也许是在提升.

c++

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

是否有翻译工具可以将 EBNF 翻译为 boost::spirit?

译者也可能处于 boost::spirit 状态。我在互联网上找不到任何信息。也许我应该做一个?

c++ boost-spirit

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

为什么std :: istream_iterator会忽略换行符?

我有以下代码:

#include <sstream>
#include <iterator>
#include <iostream>

int main()
{
    std::stringstream str; str << "abc\ndef";

    std::cout << "[" << str.str() << "]" << std::endl;

    std::istream_iterator<char> it(str), end;

    for (; it != end; ++it)
    {
        std::cout << "[" << unsigned(*it) << "]";
    }

    std::cout << std::endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出是:

[abc
def]
[97][98][99][100][101][102]
Run Code Online (Sandbox Code Playgroud)

为什么std :: istream_iterator忽略了换行符呢?

c++

5
推荐指数
3
解决办法
1297
查看次数

C++ 17检查有效表达式

此基础上我的代码这个这个,我已经写了这个版本:

#include <iostream>
#include <boost/preprocessor.hpp>
#include <boost/callable_traits/is_invocable.hpp>

#define IS_VALID_EXPANDER_BEGIN(count)                    \
    [](BOOST_PP_REPEAT(count, IS_VALID_EXPANDER_MIDDLE, \
        _)) constexpr->decltype IS_VALID_EXPANDER_END

#define IS_VALID_EXPANDER_MIDDLE(z, idx, _) BOOST_PP_COMMA_IF(idx) auto _##idx

#define IS_VALID_EXPANDER_END(...) \
    (__VA_ARGS__){})

#define IS_VALID(...)                              \
    is_valid<__VA_ARGS__>(IS_VALID_EXPANDER_BEGIN( \
        BOOST_PP_VARIADIC_SIZE(__VA_ARGS__))

template <typename... Ts, typename TF>
static constexpr auto is_valid(TF)
{
    return boost::callable_traits::is_invocable<std::decay_t<TF>(Ts...), Ts...>{};
}

struct Test {};

int main()
{
    std::cout << IS_VALID(std::ostream&, double)(_0 << _1) << std::endl;
    std::cout << IS_VALID(std::ostream&, Test)(_0 << _1) << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

但结果是:

1
1
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚为什么.

c++ c++17

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

现在如何弃用相同的strstream功能?

我用来编写这样的代码:

void fun(char *buff, unsigned size)
{
    std::strstream str(buff, size);
    str << "hello world: " << 5;
}
Run Code Online (Sandbox Code Playgroud)

所以我可以在任意缓冲区上使用流输出.我发现这种技术既有效(无分配)又有用(流!).既然不推荐使用std :: strstream,我怎样才能获得与此代码相同的速度+灵活性?

c++

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

标签 统计

c++ ×8

git ×2

boost-spirit ×1

c ×1

c++17 ×1

clang ×1

go ×1

linux ×1

llvm ×1

posix ×1

unix ×1