小编0xb*_*00d的帖子

正则表达式匹配两个字符串之间的所有字符

示例:"这只是一个简单的句子".

我想匹配"This is"和"sentence"之间的每个字符.换行符应该被忽略.我无法弄清楚正确的语法.

regex

378
推荐指数
7
解决办法
66万
查看次数

sizeof(bool)是否在C++语言标准中定义?

我在标准文档中找不到答案.C++语言标准是否要求sizeof(bool)始终为1(1个字节),还是要定义此大小的实现?

c++ boolean sizeof implementation-defined-behavior

107
推荐指数
3
解决办法
6万
查看次数

C++ volatile成员函数

class MyClass
{
    int x, y;
    void foo() volatile {
        // do stuff with x
        // do stuff with y
    }   
};
Run Code Online (Sandbox Code Playgroud)

我是否需要声明x并将其y视为volatile或将成为volatile自动处理的所有成员变量?

我想确保"stuff with x"不会y被编译器的"stuff with " 重新排序.

编辑:如果我将正常类型转换为volatile类型会发生什么?这是否会指示编译器不重新排序对该位置的访问?我想在特殊情况下将一个普通变量传递给一个参数是volatile的函数.我必须确保编译器不会使用先前或后续的读写重新排序该调用.

c++ volatile member-functions

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

std :: atomic | compare_exchange_weak与compare_exchange_strong

我不确定我是不理解还是文件没有明确制定.

以下摘录摘自最新草案(N3126,第29.6节):

bool atomic_compare_exchange_weak(volatile A* object, C * expected, C desired);
bool atomic_compare_exchange_weak(A* object, C * expected, C desired);
bool atomic_compare_exchange_strong(volatile A* object, C * expected, C desired);
bool atomic_compare_exchange_strong(A* object, C * expected, C desired);
bool atomic_compare_exchange_weak_explicit(volatile A* object, C * expected, C desired, memory_order success, memory_order failure);
bool atomic_compare_exchange_weak_explicit(A* object, C * expected, C desired, memory_order success, memory_order failure);
bool atomic_compare_exchange_strong_explicit(volatile A* object, C * expected, C desired, memory_order success, memory_order failure);
bool atomic_compare_exchange_strong_explicit(A* object, C * expected, …
Run Code Online (Sandbox Code Playgroud)

c++ stl atomic c++-standard-library c++11

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

C++ typedef成员函数签名语法

我想声明成员函数签名的类型定义.全局函数typedef如下所示:

typedef int (function_signature)(int, int);
typedef int (*function_pointer) (int, int);
Run Code Online (Sandbox Code Playgroud)

但是我对成员函数不能做同样的事情:

typedef int (foo::memberf_signature)(int, int);   // memberf_pointer is not a member of foo
typedef int (foo::*memberf_pointer)(int, int);
Run Code Online (Sandbox Code Playgroud)

这对我来说听起来很合理,因为"foo ::"是访问类foo中成员的语法.我怎样才能输入签名?

c++ typedef member-functions method-signature

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

小于 1 的浮点类型可表示的最大值

float有没有办法获得小于 的浮点类型可表示的最大值1

看过以下定义

static const double DoubleOneMinusEpsilon = 0x1.fffffffffffffp-1;
static const float FloatOneMinusEpsilon = 0x1.fffffep-1;
Run Code Online (Sandbox Code Playgroud)

但这真的是我们应该如何定义这些价值观吗?

根据标准,std::numeric_limits<T>::epsilon是机器 epsilon,即 1.0 与浮点类型可表示的下一个值之间的差T。但这并不一定意味着定义T(1) - std::numeric_limits<T>::epsilon会更好。

c++ floating-point epsilon c++17

24
推荐指数
2
解决办法
2200
查看次数

实体框架 - 如何检查表是否存在?

我正在使用实体框架和Code First方法.基类DbContext具有创建和删除数据库以及检查其存在的功能.

我想检查一个特殊的表(实体)是否存在.是否可以使用框架实现或者我是否需要编写自定义方法?如果我需要编写自己的实现,那么最通用的方法是什么?

谢谢你的帮助.

c# sql ef-code-first entity-framework-4.1

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

如何防止g ++优化由可由IRQ更改的变量控制的循环?

考虑以下代码:

unsigned global;
while(global);
Run Code Online (Sandbox Code Playgroud)

global在由IRQ调用的函数中被修改.但是,g ++删除了"is-not-zero"测试,并将while循环转换为无限循环.

禁用编译器优化可以解决问题,但C++是否为它提供了语言结构?

c++ gcc g++ irq

22
推荐指数
2
解决办法
3891
查看次数

我们可以使用lambda表达式作为函数参数的默认值吗?

参考C++ 11规范(5.1.2.13):

一个拉姆达表达式出现在默认参数不应隐含或明确地捕捉到任何实体.
[ 例如:

void f2() {
    int i = 1;
    void g1(int = ([i]{ return i; })()); // ill-formed
    void g2(int = ([i]{ return 0; })()); // ill-formed
    void g3(int = ([=]{ return i; })()); // ill-formed
    void g4(int = ([=]{ return 0; })()); // OK
    void g5(int = ([]{ return sizeof i; })()); // OK
}
Run Code Online (Sandbox Code Playgroud)

- 末端的例子 ]

但是,我们还可以使用lambda表达式本身作为函数参数的默认值吗?

例如

template<typename functor>
void foo(functor const& f = [](int x){ return x; })
{
}
Run Code Online (Sandbox Code Playgroud)

c++ lambda c++11

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

将满足某些条件的所有元素从一个容器移动到另一个容器,即我正在寻找某种"move_if"

特定

std::vector<T> first = /* some given data */, second;
Run Code Online (Sandbox Code Playgroud)

我想移动的所有元素e满足一些条件cond(e),从firstsecond,即像

move_if(std::make_move_iterator(first.begin()),
    std::make_move_iterator(first.end()),
    std::back_inserter(second), [&](T const& e)
{
        return cond(e);
});
Run Code Online (Sandbox Code Playgroud)

我无法用算法库建立这个.那么,我该怎么做呢?

c++ c++11 c++14

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