小编moa*_*ala的帖子

C++依赖于隐式转换到条件中的bool?

我在编码标准表中找到了以下规则:

在条件中不要依赖隐式转换为bool.

if(ptr)//错了

if(ptr!= NULL)//好的

这个规则有多合理/有用?

编译代码多少重载?

c++ coding-style implicit-cast

6
推荐指数
4
解决办法
4995
查看次数

在MacOSX下,Qt app文字大小不正确

在Windows下使用QtCreator设计UI,并.ui在MacOSX下移植相同的文件会导致设计中的某些文本部分非常小 - 实际上是HTML.它似乎来自QtCreator使用pt而不是px文本大小单位的事实,并且Windows和MacOSX下的默认屏幕分辨率完全不同.

有没有理由我没有得到更一致的结果?除了编辑每个ptpx,有什么解决办法

谢谢.

c++ user-interface qt qt-creator text-size

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

寻找一种无锁的RT安全单读写器单写器结构

我正在寻找符合这些要求的无锁设计:

  • 一个单一的作家写进结构和单个读取器从该结构中读取(此结构已经存在,并且是安全的,同时读/写)
  • 但在某些时候,结构需要编写器更改,编写器然后初始化,切换和写入新结构(相同类型但具有新内容)
  • 并且在读者读取的下一次,它切换到这个新结构(如果写入器多次切换到新的无锁结构,读取器丢弃这些结构,忽略它们的数据).
  • 必须重用这些结构,即在写入/读取/切换操作期间不允许堆内存分配/释放,以用于RT.

我目前已经实现了一个包含这些结构的多个实例的ringbuffer; 但是这个实现受到以下事实的影响:当编写器使用了环形缓冲区中存在的所有结构时,没有更多的地方可以从结构中改变......但是,其余的环形缓冲区包含一些不必读取的数据由读者但不能被作者重复使用.因此,环形缓冲器不适合这个目的.

无锁设计的任何想法(名称或伪实现)谢谢你考虑过这个问题.

multithreading real-time lock-free

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

堆栈上的c ++分配很奇怪

使用g ++的奇怪事情(也许还有其他编译器?):

struct Object {
        Object() { std::cout << "hey "; }
        ~Object() { std::cout << "hoy!" << std::endl; }
};

int main(int argc, char* argv[])
{
        {
                Object myObjectOnTheStack();
        }
        std::cout << "===========" << std::endl;
        {
                Object();
        }
        std::cout << "===========" << std::endl;
        {
                Object* object = new Object();
                delete object;
        }
}
Run Code Online (Sandbox Code Playgroud)

用g ++编写:

===========
hey hoy!
===========
hey hoy!
Run Code Online (Sandbox Code Playgroud)

第一种类型的分配不构造对象.我错过了什么?

c++ oop stackalloc

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

便携式c ++原子交换(Windows - GNU/Linux - MacOSX)

有免费的便携式(Windows,GNU/Linux和MacOSX)库提供无锁原子交换功能吗?

如果没有,它将如何实现这些平台?(x86与VC++或g ++)

谢谢

c++ portability swap atomicity

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

从命令行中选择32位或64位版本的应用程序

我在Mac OS X上,我有一个可执行的二进制文件,它与x86_64和i386架构兼容.

从命令行,我想选择哪些架构必须启动.

怎么做?谢谢.

architecture macos command-line x86-64 i386

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

如何从 shell 脚本为 .dmg 创建空的“图标\r”文件?

从 shell 脚本中,我想为 Mac OS X 磁盘映像 (dmg) 创建空的“Icon\r”文件,以便 .VolumeIcon.icns 图标文件被查找器考虑在内;控制台不接受该死的 '\r' 字符:

touch Icon\r
ls Icon*

> Iconr
Run Code Online (Sandbox Code Playgroud)

尝试键入时会发生其他事情'Icon\r'"Icon\r"等等,我无法实现使其接受“\ r”作为文件名末尾所需的典型回车符。

知道如何输入吗?

谢谢

unix macos shell icons dmg

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

如何在QtXml中调试QDomElement?

我有一个QDomElement,我想调试它,即在调试控制台中将其视为纯文本.为了使用qDebug()输出它,它需要采用QString格式,但是我没有看到QDomElement和QDomNode的任何转换方法.

任何的想法?谢谢!

c++ debugging qt qtxml

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

如何在MacOSX上设置C++的双精度?

我正在尝试移植_controlfp(_CW_DEFAULT,0xffffffff); 从WIN32到Mac OS X/Intel.我完全不知道如何移植这条指令......你呢?谢谢!

c++ macos fpu double-precision

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

QToolBar怎么知道它在哪里?

在Qt中,当移动QToolBar时,可以使用QToolBar :: topLevelChanged(bool)信号来知道QToolBar是浮动还是停靠.

当在QToolBar停靠,一个人如何能得到的Qt :: ToolBarArea(LeftToolBarArea,RightToolBarArea,TopToolBarArea,BottomToolBarArea)在QTookBar停靠

谢谢.

c++ qt toolbar

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

迭代容器的最佳方法

这两种迭代容器的方式有哪些优点/缺点/你更喜欢哪一种?为什么:

for (MyClass::iterator i = m.begin(), e = m.end() ; i != e ; i++)
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

要么

for (MyClass::iterator i = m.begin() ; i != m.end() ; i++)
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

附属问题:i ++或++ i?为什么?

c++ containers iterator

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

reinterpret_cast指向char和unsigned char之间的指针陷阱?

我正在使用以下函数来创建UUID并将其以人类可读的形式写入预先分配的缓冲区.出了点问题.

void createUUID(char* pDst)
{
    UUID    lUUIDObj;
    UuidCreate(&lUUIDObj);
    unsigned char*  lDest = reinterpret_cast<unsigned char*>(pDst);
    UuidToStringA(&lUUIDObj, &lDest)
}
Run Code Online (Sandbox Code Playgroud)

在方法结束时,调试器说:

  • lDest = 0x01fe4fd8"df4a5ed8-c0d2-495a-84d7-ce0e07cf2113"
  • pDst = 0x0012ec7c"在"Ì"或"Ì"

我认为两者都有相同的内容,但事实并非如此.

发生了什么?谢谢.

c++ uuid char unsigned-char reinterpret-cast

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