小编Off*_*rmo的帖子

如何从typescript中使用npm模块?

我正在拍打打字稿.它在hello world阶段运行良好.我现在正在尝试使用npm模块:

index.ts =

import _ = require('lodash')

console.log(_.toUpper('Hello, world !'))
Run Code Online (Sandbox Code Playgroud)

这不起作用:

  • tsc index.ts - > Cannot find module 'lodash'. (2307)
  • node-ts index.js - > Cannot find module 'lodash'. (2307)

看看打字稿文档和谷歌没有帮助.其他S/O问题要么没有答案(此处此处)或不相关.

元素:

  • 打字稿1.8最新
  • 是的,lodash已安装npm i --save lodash并存在于我的文件系统中(已选中)
  • 我也做到了 typings i --save lodash
  • 变种import * as _ from 'lodash'const _ = require('lodash')不起作用
  • 我尝试按照其他答案中的建议调整tsconfig.json选项, "moduleResolution": "node"并且"module": "commonjs"如某些答案所示,仍然无法正常工作

我们如何在打字稿中使用npm包?

node.js npm typescript tsc

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

内存对齐:如何使用alignof/alignas?

我现在正在使用共享内存.

我无法理解alignofalignas.

cppreference不清楚:alignof返回"对齐"但什么是"对齐"?要为要对齐的下一个块添加的字节数?填充尺寸?堆栈溢出 /博客条目也不清楚.

有人能解释清楚alignofalignas

c++ x86-64 memory-alignment c++11

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

前瞻性声明的危险是什么?

我刚接受采访.我被问到什么是"前瞻性声明".然后我被问到他们是否是与前瞻性声明有关的危险.

我无法回答第二个问题.在网上搜索没有显示任何有趣的结果.

那么,有人知道与使用前向声明有关的任何危险吗?

c++ forward-declaration

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

我们应该更喜欢Boost还是标准lib?

我正在阅读Boost阵列文档,我看到这一行:

如果您使用的是C++ 11,则应考虑使用std :: array而不是boost :: array

我的印象是Boost,因为它的主要库,总是比标准库更好,因为:

  • boost永远不会比标准的lib差
  • boost可能会提供更多功能
  • 与标准lib相比,boost的质量始终相同(编写C++标准的人是主动提升开发人员/主管)
  • 几年之后,主要的提升功能最终会出现在标准库中

所以我更倾向于提升stdlib?

如果不是/更复杂,我的哪些假设需要纠正?

c++ boost

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

如何向cmake添加自定义构建类型?(定位制作)

我正在尝试为我的cmake构建添加一个自定义构建类型,目标是代码覆盖率.

我发现它的FAQ条目:http://www.cmake.org/Wiki/CMake_FAQ#How_can_I_specify_my_own_configurations_.28for_generators_that_allow_it.29_.3F

但是,我无法使其发挥作用.

这是我的代码,使用cmake 2.8.5:

message("* Adding build types...")
if(CMAKE_CONFIGURATION_TYPES)
   list(APPEND CMAKE_CONFIGURATION_TYPES CodeCoverage)
   list(REMOVE_DUPLICATES CMAKE_CONFIGURATION_TYPES)
   set(CMAKE_CONFIGURATION_TYPES "${CMAKE_CONFIGURATION_TYPES}" CACHE STRING
       "Add the configurations that we need"
       FORCE)
   message("  Available build types are now : ${CMAKE_CONFIGURATION_TYPES}")
else()
   message("  XXX custom build types are not allowed...")
endif()
Run Code Online (Sandbox Code Playgroud)

我得到"不允许XXX自定义构建类型......"...

cmake

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

enable_shared_from_this的双重继承

我有一个对象(Z),它来自另外两个对象(A和B).

A和B都从派生enable_shared_from_this<>分别enable_shared_from_this<A>enable_shared_from_this<B>.

当然我打电话shared_from_this()给Z.当然编译器报告这个含糊不清.

我的问题是:

  • 继承两次是安全的enable_shared_from_this<>还是会创建两个分开的引用计数(坏!)
  • 如果不安全,我该如何解决?

注意:当基类和派生类都继承自boost :: enable_shared_from_this但我没有真正回答时,我发现这个其他问题是坏的弱指针.我virtual也应该使用这个技巧吗?

c++ multiple-inheritance shared-ptr enable-shared-from-this

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

在Linux上进行x86 C++开发有哪些(工作)备用工具链?

我确切地说,我将这个问题限制为我的x86(64位)linux盒子的"本机"开发.没有嵌入式或非x86架构.

由于我是C++用户并且有C++复兴,我目前正在使用C++进行个人项目.

现在我正在使用强大的,传统的linux/gcc/make工具链.

但通过博客文章和SO问题,我最近意识到了新的有前途的工具:

  • ''clang''作为''gcc''的替代品,速度更快,提供更好的错误信息
  • ''gold''代替''ld'',速度要快得多

这些工具鲜为人知,很容易甚至不知道它们.

还有其他有趣的鲜为人知的工具我应该注意吗?例如替代gdb等?(我也在使用cmake)

我首先寻找易于开发,然后提高开发速度.欢迎任何其他改进.

如果可能,免费工具.

c++ linux gcc clang

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

认真调试node.js'无法找到模块xyz/abcd'

我有Error: Cannot find module xyz/abcd错误.

是的,安装了所需的模块.

据module.require的伪代码在这里,它应该工作.

我试图require()深入了解为什么它找不到我的文件.我的节点调试器不会进入require().我已经尝试过这项strace / grep NOENT技术,但也没有成功.

知道如何解决令人讨厌的require()失败吗?

注意:以防万一:错误来自需要xyz/b的文件node_modules/xyz/a.它应该根据文档工作.

module require node.js

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

iframe 如何删除自己的沙箱?

我正在使用同源 iframe 来加载外部小部件(通过跨源脚本加载 tlk.io)。我试图给予 iframe/widget 尽可能低的权限,以将其与我的应用程序隔离。

\n

MDN 给出以下警告:

\n
\n

关于沙箱的注意事项:

\n

当嵌入文档与嵌入页面具有相同来源时,强烈建议不要同时使用allow-scripts和allow-same-origin,因为这会让嵌入文档删除沙箱属性\xe2\x80\x94,使其不再存在比根本不使用沙箱属性更安全。

\n
\n

Firefox 开发工具向我显示此警告:

\n
\n

沙箱属性同时具有允许脚本和允许同源的 iframe可以删除其沙箱

\n
\n

我的问题是:在这种情况下(sandbox="allow-same-origin allow-scripts" ) iframe 如何删除其沙箱?什么js代码可以执行这个?

\n

从 iframe 中,我尝试查看window.opener但它为空。window.parent不是指父级(编辑:不正确,我错误地使用了开发工具)。我无法从 iframe 本身找到对 \xc2\xabiframe\xc2\xbb 的引用...

\n

javascript browser iframe dom

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

错误:在... <near match>中与'operator []'不匹配

这无法在gcc 4.1.2/RedHat 5中编译:

#include <string>
#include <vector>
#include <map>

class Toto {
public:
    typedef std::string SegmentName;
};

class Titi {
public:
    typedef Toto::SegmentName SegmentName; // import this type in our name space
    typedef std::vector<SegmentName> SegmentNameList;
    SegmentNameList segmentNames_;
    typedef std::map<SegmentName, int> SegmentTypeContainer;
    SegmentTypeContainer segmentTypes_;

    int getNthSegmentType(unsigned int i) const {
        int result = -1;

       if(i < segmentNames_.size())
       {
           SegmentName name = segmentNames_[i];
           result = segmentTypes_[ name ];
       }
       return result;
    }
};
Run Code Online (Sandbox Code Playgroud)

错误是:

error: no match for 'operator[]' in '(...)segmentTypes_[name]'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_map.h:340: …
Run Code Online (Sandbox Code Playgroud)

c++

6
推荐指数
2
解决办法
8591
查看次数