小编Wan*_*ool的帖子

为什么固定宽度整数打印出字符而不是整数?

给出以下代码.

#include <cstdint>
#include <iostream>
#include <limits>

int main()
{
    int8_t x = 5;
    std::cout << x << '\n';

    int y = 5;
    std::cout << y;

    std::cin.clear();
    std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    std::cin.get();

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我的输出是三叶草5.如果固定宽度整数是整数,为什么它们输出它们的数字的ASCII字符符号?

编辑:刚发现这种行为只发生在8位固定宽度的整数上?这是编译器行为吗?

c++ integer fixed-width

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

如何使联系人的电话号码可以点击呼叫并以离子方式发送消息?

我从GitHub克隆了离子项目

虽然联系人的电话号码无法点击呼叫和留言.所以对于index.html文件第39行,我转换自

<p ng-if="contact.emails.length > 0">{{contact.emails[0].type}} : {{contact.emails[0].value}}</p>
Run Code Online (Sandbox Code Playgroud)

<p ng-if="contact.phones.length > 0">{{contact.phones[0].type}} : <a ng-href='{{contact.phones[0].value}}'>{{contact.phones[0].value}}</a></p>
Run Code Online (Sandbox Code Playgroud)

但事实证明,该应用程序将不再加载任何联系人的信息.

有什么我错过了或者我在发送数据时完全错了吗?

html javascript angularjs cordova ionic

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

我的 Clojure 排列实现有什么问题

我知道使用 Clojure 解决排列的方法有多种。我尝试使用 Core.Logic 创建 DCG(定子句语法),但该库的 DCG 部分太实验性,无法工作。

在下面的代码中我尝试了两种不同的方法。一种是列表理解(已注释掉),这与我在 Haskell 中解决此问题的方式类似。

第二种方法使用 MapCat 将 cons/first 应用于递归调用排列的每个返回值。删除项目可确保我不会在每个位置多次使用相同的字母。

有人可以解释一下列表理解方法有什么问题以及 MapCat 方法有什么问题吗?在 Haskell 中推理此类问题要容易得多 - 我是否缺少一些关于 Clojure 的观点?

(defn remove-item [xs]
   (remove #{(first xs)} xs )
)

(defn permutation [xs]

  (if (= (count xs) 1)
      xs

     ;(for [x xs y (permutation (remove-item xs))
     ;          :let [z (map concat y)]]
     ;          z)                    

     (mapcat #(map cons first (permutation (remove-item %)) ) xs)

  )
)
Run Code Online (Sandbox Code Playgroud)

编辑:@thumbnail 已经解决了评论中的 MapCat 子问题

functional-programming clojure clojure-core.logic

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

PHP OpCache优化

我在php中启用了操作码缓存,它将页面加载节省了25%.

我使用优秀的OpCache.php GUI工具,我的输出如下.

键输出如下. 在此输入图像描述

命中输出如下. 在此输入图像描述

我试图了解那里的一些基本功能.
1.什么是缓存密钥和空闲密钥?
2.如何减少我的失误?我在某处读到opcache_hit_rate应该高于99%.有没有办法进行这种微调.我目前处于91%
3.如何使用可视化?

我是这方面的初学者,非常感谢任何帮助.非常感谢.

php caching magento opcache

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

UBSan和Asan在GCC 4.9.2中的用法

我已经用-fsanitize=undefined选项编译了我的应用程序。现在如何测试应用程序的未定义行为?

另外,如何进行Asan检查?我已经使用编译了程序-fsanitize=address,并且崩溃并显示以下输出:

==4563==Sanitizer CHECK failed: ../../../../src/libsanitizer/asan/asan_malloc_linux.cc:85 ((allocated < kCallocPoolSize)) != (0) (0, 0)
Run Code Online (Sandbox Code Playgroud)

我在Ubuntu 15.04上安装了GCC 4.9.2。

c++ gcc undefined-behavior address-sanitizer ubsan

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

当我在64位计算机上运行时,为什么我的编译器使用8位字符?

我正在使用Microsoft Visual Studio 2013 IDE.当我在使用标题时用C++编译程序时<climits>,我将宏常量输出CHAR_BIT到屏幕.它告诉我在我的char数据类型中有8位(在C++中是1字节).但是,Visual Studio是一个32位应用程序,我在64位计算机上运行它(即一台处理器具有64位指令集且操作系统是64位Windows 7的计算机).

我不明白为什么我的char数据类型只使用8位.不应该使用至少32位(因为我的IDE是一个32位应用程序),更不用说64位(因为我在64位机器上编译)?

我被告知存储器地址(1字节)中使用的位数取决于硬件和实现.如果是这种情况,为什么我的内存地址仍然只使用8位而不是更多?

c++ 64-bit byte bit visual-studio-2013

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

当这些全局变量具有命名空间范围时,为什么它们是全局变量?

在下面的代码中,是调用 globals.cpp 命名空间中的变量实际全局变量

全局变量.h

#ifndef GLOBALS_H_
#define GLOBALS_H_

namespace Constants
{
    // forward declarations only
    extern const double pi;
    extern const double avogadro;
    extern const double my_gravity;
}

#endif
Run Code Online (Sandbox Code Playgroud)

全局变量.cpp

namespace Constants
{
    // actual global variables
    extern const double pi(3.14159);
    extern const double avogadro(6.0221413e23);
    extern const double my_gravity(9.2); // m/s^2 -- gravity is light on this planet
}
Run Code Online (Sandbox Code Playgroud)

源代码.cpp

#include <iostream>
#include <limits>

#include "globals.h"

int main()
{
    double value_of_pi = Constants::pi;

    std::cout << value_of_pi; …
Run Code Online (Sandbox Code Playgroud)

c++ scope namespaces global-variables forward-declaration

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

如何在模板类中声明特定于类型的模板友元函数?

我最近了解到有两种方法可以声明模板友元类或函数.例如,要声明模板好友类,您可以执行此操作

template <typename T>
class goo
{
    template <typename T>
    friend class foo;
};
Run Code Online (Sandbox Code Playgroud)

或这个

template <typename T>
class goo
{
    friend class foo <T>;
};
Run Code Online (Sandbox Code Playgroud)

这两个声明实际上是不同的.前者允许您使用任何类型的模板朋友类foo与任何类型的模板朋友类goo.后者只允许您使用相同的类型,以便您可以foo<int>使用goo<int>但不能foo<int>使用goo<char>.

在下面的头文件中,我尝试使用后一种形式的声明来使我的模板友元函数friend std::ostream& operator<<(std::ostream&, const Array<T>&);更具特定于类型,以使我的程序更加封装.

// ARRAY_H

#include <iostream>
#include "Animal.h"

const int DefaultSize = 3;

template <typename T> // declare the template and the paramenter
class Array               // the class being parameterized
{
public:
  Array(int itsSize = DefaultSize);
  Array(const Array &rhs);
  ~Array() …
Run Code Online (Sandbox Code Playgroud)

c++ syntax templates compiler-errors friend-function

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

许可证样板注释究竟是什么,它需要采用什么格式?

我正在阅读Google C++ Style Guide以尝试模仿良好的编码实践。当我通读关于如何评论我的代码的部分时,它要求我用license boilerplate开始每个文件。我所能找到的关于这个术语的所有信息都来自Mozilla以及我认为是他们的评论标准。许可证样板注释究竟是什么,它需要采用什么格式?

注意:明确地说,我并不是说 Google C++ 风格指南是遵循良好编码实践的完美指南。我只是用它来获得关于如何改进我的编码风格的新想法。

c++ comments coding-style boilerplate

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

调用 dll 函数 C++ rad studio xe3

我尝试从 dll 调用函数,但它似乎不能正常工作。这是代码:

HMODULE  dllhandle;
#include "Unit1.h"
#include <windows.h>
#include <iostream.h>  
#include <conio.h>
void __fastcall TForm1::Button1Click(TObject *Sender)
{

    dllhandle = LoadLibrary((wchar_t*)"PBusDrv.dll");

if(dllhandle)
{
typedef int (*PBUSCONNECTEX)(String aux1, String aux2, String ip);
PBUSCONNECTEX PBusConnectEx;

PBusConnectEx =  (PBUSCONNECTEX)GetProcAddress(dllhandle,  "PBusConnectEx");

PBusConnectEx(" "," ","192.168.30.252");
   }
}
Run Code Online (Sandbox Code Playgroud)

dllhandle 不断返回空值。

c++ winapi c++builder c++builder-xe3

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