小编sas*_*hka的帖子

通用lambda如何在C++ 14中工作?

auto在C++ 14标准中,通用lambda如何工作(关键字作为参数类型)?

它是基于C++模板的,每个不同的参数类型编译器生成一个具有相同主体但替换类型(编译时多态)的新函数,还是更类似于Java的泛型(类型擦除)?

代码示例:

auto glambda = [](auto a) { return a; };
Run Code Online (Sandbox Code Playgroud)

c++ lambda auto c++14

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

将当前类作为返回类型注释

在python 3中,我可以创建参数并返回类型注释.例:

class Graph:
    def __init__(self, V: int, E: int, edges: list):
        pass

    @classmethod
    def fromfile(cls, readobj: type(sys.stdin)):
        pass

    def V(self) -> int:
        pass

    def E(self) -> int:
        pass
Run Code Online (Sandbox Code Playgroud)

问题是我无法使用当前类(Graph)的返回类型进行注释,该类尚未定义.例:

class Graph:
   def reverse(self) -> Graph:
       pass
Run Code Online (Sandbox Code Playgroud)

此代码有错误

def reverse(self) -> Graph:
NameError: name 'Graph' is not defined
Run Code Online (Sandbox Code Playgroud)

这些注释对于记录和允许IDE识别参数和返回类型=>启用自动完成非常有用

UPD:所以我提出的是要么是不可能的要么是需要一些我不喜欢的黑客攻击,所以我决定使用def reverse (self) -> 'Graph': 哪种文档是可以理解的,尽管违反了规则.缺点是它不适用于IDE自动完成.

python annotations class python-3.x

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

如何在C++ 11中实现make_unique函数?

我的编译器不支持make_unique.怎么写一个?

template< class T, class... Args > unique_ptr<T> make_unique( Args&&... args );
Run Code Online (Sandbox Code Playgroud)

c++ unique-ptr c++11 c++14

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

Github错误地识别项目中使用的编程语言

所以我有一个用C++编写的git存储库,但是github坚持认为我正在使用D.为什么这样,并且有什么方法可以解决它?

c++ d github

21
推荐指数
2
解决办法
2083
查看次数

C++中的Java反序列化

我正在开发一个C++必须处理各种消息类型的应用程序.其中一种类型serialized Java objects(没有可用的来源).
我想知道是否有人知道C++库的行列jdeserialize
对于那些不熟悉它的人,jdeserialize基本上解析序列化对象并构建图形.
它做得很好,我一直在试验它 - 使用JNI来管理与主程序的交互.
这工作正常,但很麻烦.我担心这将是一个令人头疼的问题.

c++ java deserialization

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

3字节int和5字节长?

每个C和C++标准是否允许sizeof数字类型不是 2的幂?

已知以下约束:

  • 16 <= CHAR_BIT * sizeof(int) <= CHAR_BIT * sizeof(long)
  • 32 <= CHAR_BIT * sizeof(long) <= CHAR_BIT * sizeof(long long)
  • 和其他十几个,在典型的8位字节架构上意味着 2 <= sizeof(int) && 4 <= sizeof(long)

这是否意味着这sizeof(int) == 3 && sizeof(long) == 5是一种有效的行为?

如果是 - 是否有任何已知的编译器/架构以类似的方式运行?

c c++ sizeof

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

const typedef; 在C和C++中

在C和C++中允许使用如下语句的原因是什么?

const typedef;
Run Code Online (Sandbox Code Playgroud)

它似乎没有任何实际意义.

此外,你可以这样做:const;typedef;

编辑:@AndreyT指出它不是标准定义的行为.对于完整的答案,我想知道GCC开发人员在决定这类代码应该可编译时出现的任何可能的优势.

c c++ typedef const

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

在退出之前是否保证stdout自动刷新?它是如何工作的?

这是代码(有效的C和C++)

#include <stdio.h>

int main() {
    printf("asfd");
    // LINE 1
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果在第1行中我放置segfaulting表达式,程序将崩溃而不打印任何东西(如预期的那样).

但是为什么上面的代码打印"asdf"并且在没有缓冲区的情况下不会被刷新?什么是引擎盖下的,为什么它按预期工作?

c c++ stdout flush autoflush

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

在node.js express中按部分发送数据

我正在搜索网络和文档的node.js express模块,似乎没有办法按部分发送数据.我有一个渲染的文件不是很快,我想在渲染一切之前发送它的一部分.

所以这是我的问题:

  1. 是否有response按部件发送数据的方法?
  2. 这是什么response.end()
  3. 如果没有办法按部分发送数据 - 背后的理由是什么?如果这是真的,我会说它看起来比非阻塞更具阻塞性.如果先前提供数据,浏览器可以更快地加载信息.

示例简化代码:

app.get(..) {
  renderFile(file, function(data) {
    response.send(data);
  });
  response.end();
)
Run Code Online (Sandbox Code Playgroud)

这段代码只发送第一块数据.我检查了 - 数据正确地给出并且回调被多次调用.

当然,我可以将数据附加到一个变量然后写入,response.send(data);但我不喜欢这种方法 - 它不是它应该工作的方式.

node.js express

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

printf的渐近复杂性

假设我正在打印一个字符串,如下所示:

printf("%s", s);
Run Code Online (Sandbox Code Playgroud)

我们可以假设这个函数的渐近复杂性是什么?

它是O(n),其中n是strlen(s) - 它的长度是多少?或者它是某种方式O(1),恒定的时间.或者不同的东西?不过,我认为你需要知道printf是如何实现的.任何见解都表示赞赏!

(我应该澄清一点,我说的是C而不是C++,但我怀疑它们的实现方式不同)

编辑:将格式字符串添加到printf()

c c++ big-o printf asymptotic-complexity

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