小编Lin*_*ios的帖子

"奇数位需要左值作为赋值的左值" - C++

注意:这不是标题中带有此名称的十亿和一个问题的副本.这与指针和非常奇怪的东西有关,而不是偶然=而不是==.

我有一个C++函数,我有一个void*名为的参数out.我有这条线:

(char*)out=new char[*size];
Run Code Online (Sandbox Code Playgroud)

sizeuint32_t*.编译器抱怨:

fundemental_bin_types.h:55:32: error: lvalue required as left operand of assignment
Run Code Online (Sandbox Code Playgroud)

怎么了?

c++ pointers void-pointers lvalue

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

为什么C++ STL使用RBtree来实现"std :: map"?

现在我正在寻找python源代码,我发现python和C#都使用hash来实现Dictionary.

哈希的时间复杂度O(1)RBtreeO(lgn),所以任何人可以告诉我为什么的原因C++ STL用途RBtree来实现std::map

c++ stl std

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

G ++足够聪明,可以优化它吗?

想象一下以下情况:

struct Args
{
  bool arg;
};
void thing(Args arg)
{
  if(arg.arg)
    cout<<"arg.arg is true\n";
  else
    cout<<"arg.arg is false\n";
}
int main()
{
  Args a;
  a.arg=false;
  thing(a);
}
Run Code Online (Sandbox Code Playgroud)

编译器是否足够智能删除switch,if以及else在程序过程中显然永远不会被调用的分支?控制这些陈述的变量必须是const?最后,除了使用preproccesor之外,完全不使用变量是正确的(我对这段代码的想法很害怕)?

只是为了澄清,真实情况是我正在编写一个类,程序员可以选择是否启用某个功能.禁用该功能可以在服务器上节省大量处理时间,使类和服务器之间有一些带宽.我试图弄清楚是否应该使用变量作为构造函数参数,前处理程序派生或其他解决方案.如果禁用该功能,如果启用该功能,我甚至不想考虑逻辑分支.我知道使用preproccessor解决方案会做到这一点,但我想避免大量使用#ifdef,#elseif我希望能够重用一个编译的共享对象.对程序员开放的源是没有问题的,因为这将是开源的.

编辑:我测试了波纹管编译线并查看了组件.我无法完全理解它,但我确实看到了一个跳转指令(jne).这是装配,如果有人可以做到:

    .file   "blah.cpp"
    .section    .rodata.str1.1,"aMS",@progbits,1
.LC0:
    .string "arg.arg is true\n"
.LC1:
    .string "arg.arg is false\n"
    .text
    .p2align 4,,15
.globl _Z5thing4Args
    .type   _Z5thing4Args, @function
_Z5thing4Args:
.LFB1003:
    .cfi_startproc
    pushl   %ebp
    .cfi_def_cfa_offset 8
    movl    %esp, %ebp
    .cfi_offset 5, -8 …
Run Code Online (Sandbox Code Playgroud)

c++ optimization performance g++

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

隐式声明了特殊成员函数

从根本上隐含地声明了四个特殊功能.

  1. 默认构造函数
  2. 默认析构函数
  3. 默认赋值运算符
  4. 默认的成员复制运算符

题:

如果用户定义了其中任何一个,[例如:析构函数]将不会声明这三个函数的其余部分.那是对的吗?或者它只适用于默认构造函数,并复制构造函数?

c++

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

什么是def to_s功能?

我正在阅读Blogger教程的"标签"部分,我对一部分感到困惑:def to_s函数(在tag.rb中); 为什么需要它以及如何包含它.

我已经为相关文件中包含了相关文件的一些相关部分.

楷模

article.rb

class Article < ActiveRecord::Base
  attr_accessible :tag_list
  has_many :taggings
  has_many :tags, through: :taggings

  def tag_list
    return self.tags.collect do |tag|
      tag.name
    end.join(", ")
  end

  def tag_list=(tags_string)
    self.taggings.destroy_all

      tag_names = tags_string.split(",").collect{|s| s.strip.downcase}.uniq

      tag_names.each do |tag_name|
        tag = Tag.find_or_create_by_name(tag_name)
        tagging = self.taggings.new
        tagging.tag_id = tag.id
      end
    end
  end
Run Code Online (Sandbox Code Playgroud)

tag.rb

class Tag < ActiveRecord::Base
  has_many :taggings
  has_many :articles, through: :taggings

  def to_s
    name
  end
end
Run Code Online (Sandbox Code Playgroud)

tagging.rb

class Tagging < ActiveRecord::Base
  belongs_to :tag
  belongs_to :article
end
Run Code Online (Sandbox Code Playgroud)

CONTROLLERS

tags_controller.rb …

ruby ruby-on-rails

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

在Cocoa中检测平台

我正在尝试构建一个需要使用本机颜色类(NSColor或UIColor)的跨平台(Mac或iOS)类.我需要一种方法来检测我是在OSX还是iOS上来改变我动态使用的类.我可以用什么来检测这个?

cocoa objective-c ios

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

子类是否在C++中共享父类的静态变量?

可能重复:
是否继承了静态成员?(C++)

如果我有一个父类(Base)并且它有一个静态std::map,那么Base和它们Base的孩子都有相同的一致std::map吗?如果没有,我怎么能让他们分享呢?

c++ static map

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

构造函数中的默认参数 - C++

我有一个C++类,我有一个构造函数char*,char*, ostream.我想为ostream(cerr)提供默认值.这是在标题或.cpp文件中完成的吗?

c++ constructor default-value

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

我应该在clone(2)中设置哪些标志,以便它与pthread_create()一样工作?

我已经做了strace(1)pthread_create(3).它间接调用clone(2)系统调用.

它将设置以下标志:(我正在使用i386 GNU/Linux(Mint 13))

CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_THREAD | CLONE_SYSVSEM | CLONE_SETTLS | CLONE_PARENT_SETTID | CLONE_CHILD_CLEARTID
Run Code Online (Sandbox Code Playgroud)

这个旗帜我很好.但我的问题是为什么pthread_create()设置CLONE_CHILD_CLEARTID标志?根据我的知识,CLONE_CHILD_SETTID将子线程id设置在子存储器中的位置ctid,并CLONE_CHILD_CLEARTID在子进入时将其擦除.

(因为没有CLONE_CHILD_SETTID设置标志,为什么CLONE_CHILD_CLEARTID?)

真的需要吗?当我们想要实现pthread_create()使用功能时,我们应该设置什么是理想的标志clone(2)

这个领域的初学者.

linux multithreading clone pthreads

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

C++中的宏可以定义宏吗?

我想知道是否可以在C++中定义一个宏来定义另一个可以在以后的代码中使用的宏.这是可能的,还是g ++使用的预处理器对此有限?

c++ macros g++

0
推荐指数
1
解决办法
179
查看次数

网站上显示不需要的超链接

我网站的文字内容中添加了不需要的超链接.

网址: http://www.empoweringparents.com/my-child-refuses-to-do-homework-heres-how-to-stop-the-struggle.php#

请查看第10点,您可以看到以"劳力士手表......"开头的链接.

我不确定是否有人黑客攻击文字内容.

html javascript css php jquery

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