小编wal*_*rii的帖子

如何使用c ++ 11编写Arduino?

c++11在编写Arduino时如何使用?我可以使用Arduino IDE或其他环境.我最感兴趣的是核心语言改进,而不是需要标准库更改的东西.

c++ ide arduino firmware

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

declval <T>()与(*(T*)nullptr)相同吗?

declval<T>()只为老把戏的替代品(*(T*)NULL),以获得T的实例在decltype,而无需担心T的构造函数?

以下是一些示例代码:

struct A {};

struct B {
    A a;
};

typedef decltype((*(B*)nullptr).a) T1;
typedef decltype(declval<B>().a) T2;

cout << "is_same: " << is_same<T1, T2>::value << endl;
Run Code Online (Sandbox Code Playgroud)

打印1,因为T1和T2是相同的类型.

如果declval不仅仅是替代品,那么差异是什么?它在哪里有用?

c++ decltype c++11

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

为什么从std :: placeholders :: _ 1开始而不是_0?

c ++中的大部分内容都是0,而不是基于1.出于好奇,为什么占位符1基于?含义_1是第一个参数,而不是_0.

c++ placeholder stdbind c++11

12
推荐指数
3
解决办法
1440
查看次数

在iphone中推进搜索实施?

我想实现高级搜索功能,以便在搜索栏中输入特定文本时,应根据搜索过滤UITableview中的内容列表,然后突出显示搜索文本?请给我一些想法?

iphone uitableview nsattributedstring

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

XMLUnit for C++

有谁知道是否存在类似XMLUnit for C++的东西?我正在寻找一种简单的方法来检查XML输出中的节点,值等.我们在Visual Studio中使用Google测试,但我想任何使工作更轻松的库就足够了.

我使用Xerces作为XML解析器,但XMLUnit(http://xmlunit.sourceforge.net/)具有一些包含在XML解析器上的功能,这些功能对于单元测试非常有用.例如,使用XPath表达式断言,比较两个"相似"XML的函数等.

c++ xml unit-testing xmlunit

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

按类别对googletest单元测试进行分组

googletest单元测试可以按类别分组吗?例如"SlowRunning","BugRegression"等.我发现最接近的是--gtest_filter选项.通过在测试或夹具名称后附加/预先添加类别名称,我可以模拟组的存在.这不允许我创建通常不运行的组.

如果googletest中不存在类别,是否有良好或最佳实践解决方法?

编辑:另一种方法是使用--gtest_also_run_disabled_tests.在测试前添加DISABLED_会给你一个条件类别,但是当我这样做时,我觉得我误用了DISABLED.

c++ unit-testing googletest

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

多线程C++消息传递

我的任务是修改同步C程序,以便它可以并行运行.我们的目标是让它尽可能便携,因为它是许多人使用的开源程序.因此,我认为最好将程序包装在C++层中,这样我就可以利用便携式的boost库.我已经完成了这一切,一切似乎按预期工作.

我遇到的问题是决定在线程之间传递消息的最佳方法是什么.幸运的是,该程序的体系结构是多生产者和单个消费者的体系结构.更好的是,消息的顺序并不重要.我已经读过单一生产者/单一消费者(SPSC)队列将受益于这种架构.那些有多线程编程经验的人有什么建议吗?我对这些东西很新.此外,任何使用boost实现SPSC的代码示例都将非常感激.

c++ multithreading boost boost-thread

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

条件显式模板实例化

除预处理器外,如何有条件地启用/禁用显式模板实例化?

考虑:

template <typename T> struct TheTemplate{ /* blah */ };

template struct TheTemplate<Type1>;
template struct TheTemplate<Type2>;
template struct TheTemplate<Type3>;
template struct TheTemplate<Type4>;
Run Code Online (Sandbox Code Playgroud)

在某些编译条件下,Type3与Type1相同,Type4与Type2相同.发生这种情况时,我收到一个错误.我想检测类型是否相同,而不是在Type3和Type4上实例化

// this does not work
template struct TheTemplate<Type1>;
template struct TheTemplate<Type2>;
template struct TheTemplate<enable_if<!is_same<Type1, Type3>::value, Type3>::type>;
template struct TheTemplate<enable_if<!is_same<Type2, Type4>::value, Type4>::type>;
Run Code Online (Sandbox Code Playgroud)

我转移了自己尝试使用enable_if和SFINAE(我相信我知道它们为什么会失败),但只有预处理器工作了(呃).我正在考虑将类型放在元组或可变参数中,删除重复项,然后使用余数进行实例化.

有没有办法根据模板参数类型有条件地启用/禁用显式模板实例化?

c++ templates c++11

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

查找数组中的最小唯一编号

数组中的最小唯一编号定义为 min{v|v occurs only once in the array} :例如,{1,4,1,2,3}的最小唯一编号为2.有没有比排序更好的方法?

algorithm

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

提前C#字符串比较

.Net中是否有任何类(函数)可以执行此操作:

如果 s1 = " I have a black car" and s2 = "I have a car that is small";
int matchingProcentage = matchingFunction(s1,s2);

  matchingProcentage == 70% <-- just as an example value :)
Run Code Online (Sandbox Code Playgroud)

.net c# windows

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

PDOException没被捕获?

我在PHP中收到以下错误:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2003] Can't connect to MySQL server on 'localhost' (10061)' in C:\xampp\htdocs\project\Service\Database.class.php:26 Stack trace: #0 C:\xampp\htdocs\project\Service\Database.class.php(26): PDO->__construct('mysql:host=loca...', 'root', '', Array) #1 C:\xampp\htdocs\project\Service\Database.class.php(54): Service\Database::initialize() #2 C:\xampp\htdocs\project\index.php(15): Service\Database::getHandler() #3 {main} thrown in C:\xampp\htdocs\project\Service\Database.class.php on line 26
Run Code Online (Sandbox Code Playgroud)

错误本身不是问题,我故意终止Windows中的MySQL服务,看看发生了什么(我正在使用XAMPP).问题是我无法捕获PDO对象抛出的异常,我不知道为什么.

try {
    $host       = "localhost";
    $dbname     = "project";
    $userName   = "root";
    $password   = "";
    $charset    = "utf8";
    $dsn        = "mysql:host=$host;dbname=$dbname;charset=$charset";

    $driverOptions = array(
        PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES $charset" …
Run Code Online (Sandbox Code Playgroud)

php pdo exception-handling exception try-catch

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

编译glibc版本的时间检查

我需要编译时间检查将使用哪个版本的glibc.

我可以找到唯一的编译时检查(即#defines)返回glibc日期(__ GLIBCXX__),日期和版本之间的对应似乎是iffy.如何在编译时检查将使用的glibc版本?

我的代码将在几个系统上编译和运行,包括一个非常旧的系统.特别是我对使用malloc_info感兴趣(参见http://man7.org/linux/man-pages/man3/malloc_info.3.html).这是在2.10版本中添加到glibc中的.该程序将在其构建的相同(或相同的系统)上使用.

glibc g++

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

为什么PHP本身会将(int)((0.1 + 0.7)*10)的结果转换为7而不是8?

为什么地球上的PHP会将结果转换(int) ((0.1+0.7)*10)为7而不是8?我知道结果将是(float) 8什么时候它的(int)结果将是7?为什么会这样?

php floating-point rounding

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