小编Pic*_*ent的帖子

Emacs 有漂亮的分页符吗?

在 Emacs 下,如何获得像这样漂亮的分页符?

在此输入图像描述

emacs page-break

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

函数将NTuple作为参数但强加(静态)大小约束,如何定义它们?

我想定义以NTuples作为参数但具有大小约束的函数.

这个想法是宣布像:

foo(x::NTuple{K-1,Int},y::NTuple{K,Int}) where {K} = "ok"
Run Code Online (Sandbox Code Playgroud)

然而,这不是正确的Julia代码.

我的问题是:如何在朱莉娅中定义这种功能?


(仅用于说明目的):对于C++编码器,我的问题等同于"如何翻译这种C++代码

template <size_t N>
foo(const std::array<int, N-1>& x, const std::array<int, N>& y) 
{ ... }
Run Code Online (Sandbox Code Playgroud)

进入格式良好的朱莉娅代码."

static julia

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

std :: declval <T>(),SFINAE和删除的构造函数

在SF ++中使用C++ 11中的方法检测,我写了这个小小的运行示例:

#include <type_traits>

struct Foo
{
  Foo();// = delete;
  Foo(int);

  void my_method();
};

template <typename T, typename ENABLE = void>
struct Detect_My_Method 
   : std::false_type
{
};

template <typename T>
struct Detect_My_Method<T, decltype(T().my_method())> 
   : std::true_type
{
};

int main()
{
  static_assert(!Detect_My_Method<double>::value, "");
  static_assert(Detect_My_Method<Foo>::value, "");
}
Run Code Online (Sandbox Code Playgroud)

按预期工作.

但是,如果我删除Foo的空构造函数:

struct Foo
{
  Foo() = delete;
  Foo(int);

  void my_method();
};
Run Code Online (Sandbox Code Playgroud)

该示例不再工作,我收到此错误消息:

g++ -std=c++11 declVal.cpp 
declVal.cpp: In function ‘int main()’:
declVal.cpp:33:3: error: static assertion failed
   static_assert(Detect_My_Method<Foo>::value, "");
Run Code Online (Sandbox Code Playgroud)

问题:解释以及如何解决?

c++ metaprogramming sfinae c++11

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

std::is_invocable 语法用于测试任意方法的存在(不仅仅是operator())

在 C++17 中我知道我可以写:

#include <type_traits>

struct A
{
  size_t operator()(double x) const { return 1; };
};

int main()
{
  static_assert(std::is_invocable_r_v<size_t, A, double>);  
}
Run Code Online (Sandbox Code Playgroud)

但是现在我想使用std::is_invocable来测试任意方法(此处为方法)的存在size(double)

#include <type_traits>

struct A
{
  size_t size(double x) const { return 1; };
};

int main()
{
   static_assert(std::is_invocable_r_v<size_t, ???, double>);  
}
Run Code Online (Sandbox Code Playgroud)

问题是“???”该如何填写?让它发挥作用

c++ metaprogramming type-traits c++17

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

标签 统计

c++ ×2

metaprogramming ×2

c++11 ×1

c++17 ×1

emacs ×1

julia ×1

page-break ×1

sfinae ×1

static ×1

type-traits ×1