小编cpx*_*cpx的帖子

用于在C中重命名文件的Win32 API

如果是源目录和目标目录,MoveFile实际上会将源文件的副本复制到目标文件中,这意味着我最终会看到两个文件.

这是重命名的最佳方式吗?

c winapi file-rename

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

参考可能比指针更有效吗?

我想知道有时候(取决于平台或编译器或代码中的上下文等)引用是否比指针更有效?

c++ performance

7
推荐指数
4
解决办法
1947
查看次数

MSVC上的模板参数推断失败:bug?

以下无法在VC++ 8.0编译器上编译时出错(我还没有在最新的visual studio编译器上尝试过.)

错误C2440:'return':无法从'const char*'转换为'const char(&)[6]'

template <typename T>
inline T const& compare (T const& a, T const& b)
{
    return a < b ? b : a;
}

int main()
{
    ::compare("string1", "string2");
}
Run Code Online (Sandbox Code Playgroud)

在函数模板中,似乎是字符串const char (&)[6].

据我所知,当<应用运算符时,数组应该衰减为指针.那么,这个错误可能是因为可能的错误吗?

c++ templates visual-studio-2005

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

ListView中的ViewPager和OnItemClickListener

我正在创建一个轻扫到列表视图适配器.我的基本方法是将列表项的视图包装为ViewPager中的第二个视图,并在ViewPager的项更改侦听器中提供必要的回调.通过很多痛苦我已经使View循环器按预期工作,以及实现了ViewHolder和ViewBinder模式.我甚至设法阻止ListView在ViewPager滚动时接管触摸事件,而不必创建ListView的自定义子类(我可以从适配器完成所有操作).

我遇到麻烦的地方是让选择器和OnItemClickListener工作.在查看ListView的源代码之后,似乎通过重写ViewPager的hasFocusable()方法总是返回false(稍后我将从子视图中提取此值)这些事情应该已经重新启用.不幸的是,这种情况并非如此.我已经尝试了setDecendantFocusability()解决方法,但我仍然卡住了.

如果可能的话,我想避免扩展ListView以提供最大程度的模块化.出于类似的原因,我不想将选择器添加到ViewPager的背景中(如果dev更改了ListView的选择器,则不会反映这一点).本质上,我希望在ListView和子视图之间使ViewPager代码透明.有任何想法吗?

android listadapter android-viewpager

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

在静态上使用未命名的命名空间

我可以假设在未命名的命名空间中声明的对象等同于static吗?

namespace { int x; };//  #1

static int x; // #2
Run Code Online (Sandbox Code Playgroud)

FWIK,在这两种情况下,x都将具有静态存储持续时间和内部链接.
声明为对象的所有规则都static适用于未命名的命名空间中的对象吗?

例如:

  • 建筑和破坏的顺序是什么?它会一样吗?
  • 我可以在未命名的命名空间中使用extern关键字x吗?

c++ static namespaces

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

关于指针的算术是关联的吗?

如果我说,

int a[] = {1, 2, 3, 4, 5};
int *p = a;
Run Code Online (Sandbox Code Playgroud)

现在,如果我写的话p + 1 + 2会和它一样((p + 1) + 2)吗?任何证明这个错误的标准参考?

c++ pointers pointer-arithmetic

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

如何使用std :: string而不复制?

我有一节课说,

class Foo
{
   public:
      void ProcessString(std::string &buffer)
      {
          // perform operations on std::string

          // call other functions within class
          // which use same std::string string
      }

      void Bar(std::string &buffer)
      {
          // perform other operations on "std::string" buffer
      }

      void Baz(std::string &buffer)
      {
          // perform other operations on "std::string" buffer
      }
};
Run Code Online (Sandbox Code Playgroud)

std::string在这些条件下,此类尝试使用缓冲区对其执行操作:

  • 我不想传递std::string我已经拥有的副本.
  • 我不想创建这个类的多个对象.

例如:

// Once an object is created
Foo myObject;

// We could pass many different std::string's to same method without copying
std::string …
Run Code Online (Sandbox Code Playgroud)

c++ string stl parameter-passing pass-by-reference

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

C中的非阻塞睡眠定时器

我正在为 Windows 寻找一个很好的非阻塞睡眠定时器。

目前我正在使用sleep(10);这当然是一个阻塞计时器。

此外,我希望它不消耗系统资源,就像我的睡眠定时器一样,它不使用任何我满意的 CPU 或系统资源。

那么,我可以使用的最好的非阻塞睡眠定时器是什么?并请附上一个如何使用它的例子。

谢谢。

c windows winapi timer

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

如何在指定位置安装Qt?

我刚刚从这里下载了Qt 5.2.0设置.当我尝试在Windows下的"Program Files"目录中安装它时,会出现一个奇怪的问题.

在此输入图像描述

错误消息说:

安装路径不得包含[〜<> |?*!@#$%^&:,;],请指定有效的文件夹.

我在程序文件的路径中看不到任何无效字符.为什么我不能安装它?

c++ windows installation qt

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

通过解除引用复制std :: unique_ptr的值

我编写了以下代码,我尝试将unique_ptr对象的值复制到结构中.

#include <iostream>
#include <memory>
using namespace std;

struct S {
    S(int X = 0, int Y = 0):x(X), y(Y){}

    // S(const S&) {}
    // S& operator=(const S&) { return *this; }

    int x;
    int y;
    std::unique_ptr<S> ptr;
};

int main() {
    S s;
    s.ptr = std::unique_ptr<S>(new S(1, 4));
    S p = *s.ptr; // Copy the pointer's value
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

它在Visual C++ 2012中弹出错误:

IntelliSense:没有合适的用户定义从"S"到"S"的转换
IntelliSense:没有运算符"="匹配这些操作数操作数类型是:std :: unique_ptr> = std :: unique_ptr>
错误C2248:'std :: unique_ptr <_Ty> :: unique_ptr':无法访问类'std …

c++ unique-ptr c++11 visual-c++-2012

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