小编Rem*_*eau的帖子

是否存在允许将非const模板参数类型隐式转换为const类型的规范方法?

我有一个函数,它接受特定模板类型的参数; 简化版可能如下所示:

#include <type_traits>

template <typename T>
struct foo
{
    // default constructor
    foo() { }

    // simple copy constructor that can construct a foo<T> from a foo<T>
    // or foo<const T>
    foo(const foo<typename std::remove_const<T>::type> &) { }
};
Run Code Online (Sandbox Code Playgroud)

在功能上,foo行为类似于a shared_ptr<T>,具有与此问题无关的一些其他插件功能.该函数的语义规定它更喜欢接受a foo<const T>.foo<const T>是隐式可构造的foo<T>,所以我希望能够做如下的事情:

template <typename T>
void bar(foo<const T> f) { }

int main()
{
    bar(foo<const int>()); // fine
    bar(foo<int>());       // compile error
}
Run Code Online (Sandbox Code Playgroud)

这失败了,因为没有匹配的重载,bar因为a foo<int>(即使a foo<const int> …

c++ c++11

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

用户定义的语言不适用于Notepad ++中的指定文件类型

我在Notepad ++中创建了一个相当简单的用户定义语言,并给它一个相关的扩展.但是,当我打开我用该扩展命名的文件时,没有任何反应.没有语法突出显示或注释突出显示.

知道我做错了什么吗?

扩展的设置没有前导".",如Notepad ++文档中所指定.

syntax-highlighting highlighting notepad++

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

CreateProcess成功,但GetExitCodeProcess返回C0000142

我正在尝试使用类似于此代码的 CreateProcessAsUser()API从服务启动用户模式进程.我的代码在99%的情况下工作正常,除非API成功,我从PROCESS_INFORMATION结构中获取进程句柄,但进程本身不会出现在我打算运行的交互式用户会话中.

有趣的是,如果我在进程句柄上调用GetExitCodeProcess(),它会成功返回代码0xC0000142.知道为什么吗?

c++ winapi process

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

HttpClient:通常只允许使用每个套接字地址(协议/网络地址/端口)

using (var client = new HttpClient())
{
 client.BaseAddress = new Uri(Url);
 client.DefaultRequestHeaders.Accept.Clear();
 client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml"));

 using (var task = client.PostAsJsonAsync(Url, body))
 {
    if (task.Result.StatusCode != HttpStatusCode.OK)
       throw new Exception(task.Result.ReasonPhrase);
 }
Run Code Online (Sandbox Code Playgroud)

}

不确定为什么我们得到每个套接字地址(协议/网络地址/端口)的唯一用法通常是允许的xx.xxx.xxx.xx:80错误

System.AggregateException: One or more errors occurred. ---> System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: Only one usage of each socket address (protocol/network address/port) is normally permitted xx.xx.xx.xx:80
at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
   at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, …
Run Code Online (Sandbox Code Playgroud)

sockets asp.net asp.net-mvc httpclient

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

TParallel.&For和TParallel.For之间有区别吗?

有没有之间的差异TParallel.&ForTParallel.For

两者都可以在Delphi 10 Seattle中编译.那么我应该坚持哪一个?

delphi delphi-10-seattle

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

如何在Windows的Linux子系统(WSL)下通过bash从R执行linux命令?

Windows 10上的WSL允许通过bash.exe执行Linux命令和命令行工具.非常有用的是,可以从Windows命令行(cmd.exe)调用Linux工具/命令,方法是将其作为参数传递给bash.exe,如下所示:

bash.exe -c <linux command>
Run Code Online (Sandbox Code Playgroud)

这非常有用,因为它应该允许基于Windows的脚本无缝地组合Windows和Linux工具.

不幸的是,我无法从R脚本调用Linux命令(见下文).

0)系统

安装了Win10 x64 +周年纪念更新+ WSL

1)调用Linux命令的比较情况

以下一切都适合我; 这里显示的只是一个示例调用ls.

windows delphi r windows-subsystem-for-linux

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

如何在编译时测试接口是否存在?

Delphi 2010中不存在单元中的IDeveloperConsoleMessageReceiver接口MSHTML.pas,但(可能)存在于更新版本中,因为它是最近的功能.

我想手动声明此接口,但仅限于它尚不存在.

如何测试是否声明了此接口?

像"假"代码:

{$IFNDEF "IDeveloperConsoleMessageReceiver"}
type
  IDeveloperConsoleMessageReceiver = interface ...
{$ENDIF}
Run Code Online (Sandbox Code Playgroud)

delphi

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

错误:使用未声明的标识符“std”C++

我是 C++ 编码新手,我想制作一个简单的口袋妖怪游戏。

我在头文件中创建了一个类,并在单独的文件中定义函数.cpp

我还有一个主文件,我将在其中运行我的实际代码。

所以我std::string在函数文件中定义了一个函数,它说std是一个未声明的标识符。

这是我的每个文件:

函数定义:

#include "fns.hpp"
int Pokemon::getHP() {
  return hp;
}
int Pokemon::getAttack() {
  return attack;
}
int Pokemon::getDefense() {
  return defense;
}
int Pokemon::getSpecialAttack() {
  return specialAttack;
}
int Pokemon::getSpecialDefense() {
  return specialDefense;
}
int Pokemon::getSpeed() {
  return speed;
}
std::string Pokemon::getAttack1() {
  return attack1;
}
std::string Pokemon::getAttack2() {
  return attack2;
}
std::string Pokemon::getAttack3() {
  return attack3;
}
std::string Pokemon::getAttack4() {
  return attack4;
}
Pokemon::Pokemon(int qhp,int qdefense,int qattack,int …
Run Code Online (Sandbox Code Playgroud)

c++ std undeclared-identifier

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

如何从单个通用对象创建“span&lt;std::byte&gt;”?

我有一个类型参数const T&,想将其转换为或任何吐出的std::span<const std::byte>魔法类型。std::as_bytes()

范围有许多构造函数,主要针对容器、数组等。但我似乎无法将单个对象变成这样的范围。我觉得这并不是一件没有道理的事情。

编辑:举个例子,什么不能编译:

const std::span<const std::byte> my_span(std::ranges::single_view{ object });
Run Code Online (Sandbox Code Playgroud)

c++ c++20

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

创建涉及不完整类型成员的“使用”声明的最佳方法是什么?

我有一个非常简单的 CRTP 骨架结构,其中仅包含一个向量和基类中的一个私有访问器。CRTP 类中有一个辅助方法可以访问它。

#include <vector>

template<typename T>
class CRTPType {

   // Will be used by other member functions.  Note it's private, 
   // so declval/decltype expressions outside of friends or this class 
   // cannot see it
   auto& _v() {
       return static_cast<T *>(this)->getV();
   }
};


class BaseType : public CRTPType<BaseType> {

    friend class CRTPType<BaseType>;

    std::vector<int> v;

    //For different base types this impl will vary
    auto& getV() { return v; }
};
Run Code Online (Sandbox Code Playgroud)

到目前为止,一切都很好。现在我想添加一个using声明,CRTPType该声明将是返回的类型_v()。因此,理想情况下,人们可以执行如下操作:

template<typename T>
class …
Run Code Online (Sandbox Code Playgroud)

c++ crtp c++14

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