小编jan*_*195的帖子

Emacs auctex以粗略的方式在内联数学后插入换行符

我遇到了emacs/auctex填充段落的问题,该段落在每个$blabla$块之后插入换行符,导致代码难以理解.例如,点击M-q以下长线:

a $1$ b $2$ c $3$ d $4$ e $5$ f $6$ g $7$ h $8$ i $9$ j $10$ k $11$ l $12$ m $13$ n $14$ o $15$
Run Code Online (Sandbox Code Playgroud)

得到:

a $1$
b $2$
c $3$
d $4$
e $5$
f $6$ g $7$ h $8$ i $9$ j $10$ k $11$ l $12$ m $13$ n $14$ o $15$
Run Code Online (Sandbox Code Playgroud)

我希望有类似的东西:

a $1$ b $2$ c $3$ d $4$ e $5$ f $6$ g …
Run Code Online (Sandbox Code Playgroud)

emacs latex auctex emacs24

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

如何将git mergetool融合为仅显示冲突而不是差异?

当我使用meld作为git mergetool来解决合并时的冲突时,meld向我展示了git自动解决的本地/输出和远程/输出文件(蓝色或绿色)之间的差异,而不仅仅是实际冲突(红色突出显示) .当我按下向下箭头时,它会转到下一个(蓝色/绿色)差异,而不是下一个冲突(红色).在主题中,图片说明了这一点.

怎么可能: - 忽略不冲突的差异 - 或者进入下一个冲突(比如在kdiff3中),而不是停止差异?

git meld

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

如何在MPI作业中的计算节点上设置环境变量

我不明白在调度程序下使用MPI运行时如何在计算节点上设置环境.

我做:

mpirun -np 1 --hostfile ./hostfile foo.sh
Run Code Online (Sandbox Code Playgroud)

foo.sh:

#!/usr/bin/env zsh                                                                                                  
echo $LD_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)

然后我没有恢复我在交互式shell中的LD_LIBRARY_PATH ...在与MPI连接时执行/获取的初始化文件是什么?

注意:我在zsh下,我试图把东西放在.zprofile或.zshenv而不是.zshrc中,但它似乎没有做出改变......我的LD_LIBRARY_PATH是在一个.profile中设置的. .bshrc,由.zshrc提供.

environment-variables mpi

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

使用带有新命令gtest_discover_tests的CMake / Ctest使用Google测试

我正在尝试将googletest与CMake / Ctest一起使用。我有几个用于测试的源文件(每个文件包含许多TEST / TEST_F / ...命令),这些文件位于多个目录中。我希望与给定源相关的测试在与源文件相同的目录中执行。另外,我更喜欢测试源文件的构建过程本身就是一个测试。所以我做了类似的事情:

file(GLOB_RECURSE test_srcs
     RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
     "tests/*.cpp")
foreach(test_src ${test_srcs}) 
  get_filename_component(test_dir ${test_src} DIRECTORY)
  get_filename_component(test_exe ${test_src} )NAME_WE)
  add_executable(${test_exe} EXCLUDE_FROM_ALL tests/gtest_main.cpp ${test_src})
  set_target_properties(${test_exe}                                       
    PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${test_dir}                                     
    )
  target_link_libraries(${test_exe} gtest)
  add_test(NAME build_${test_exe} COMMAND "${CMAKE_COMMAND}" --build ${CMAKE_BINARY_DIR} --target ${test_exe})
  set_tests_properties(build_${test_exe} PROPERTIES FIXTURES_SETUP ${test_exe})
  gtest_discover_tests(${test_exe}
    TEST_LIST list
    WORKING_DIRECTORY ${test_dir}
    PROPERTIES DEPENDS build_${test_exe}
    PROPERTIES FIXTURES_REQUIRED ${test_exe}
    )
endforeach()
Run Code Online (Sandbox Code Playgroud)

但是似乎没有考虑我试图在测试之间声明的依赖项:测试的构建不一定在执行基础测试之前进行...

如果我gtest_add_tests将以下内容替换为gtest_discover_tests,则可以使用它:

gtest_add_tests(
  TARGET ${test_exe}
  SOURCES ${test_src}
  WORKING_DIRECTORY ${test_dir}
  TEST_LIST tlist
  )
set_tests_properties(${tlist} PROPERTIES FIXTURES_REQUIRED ${test_exe})
Run Code Online (Sandbox Code Playgroud)

我错过了什么gtest_discover_tests吗?

cmake googletest ctest

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

如何在fortran 90/95中使用内部类型进行一些通用编程

我想编写一些适用于不同类型的程序.我打算使用这里这里描述的flibs中使用的"include"方法.我在这里给出一个简单的例子.

  ! -------------------------------------------------------------- ! 
  module data_type

  type ivalue
  integer :: v
  end type

  type rvalue
  real(8) :: v
  end type

  end module data_type
  ! -------------------------------------------------------------- ! 
  module imod

  use data_type, only: T => ivalue 

  include "template.f90"

  end module imod
  ! -------------------------------------------------------------- ! 
  module rmod

  use data_type, only: T => rvalue 

  include "template.f90"

  end module rmod
  ! -------------------------------------------------------------- ! 
  module mod

  use imod, only:
 &     ivalue => T,
 &     iprintme => printme

  use rmod, only:
 &     rvalue …
Run Code Online (Sandbox Code Playgroud)

fortran generic-programming fortran90 fortran95

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

如何让通用子例程在具有假定大小数组的 Fortran 中工作

我有一个接口块来定义一个通用子例程,该子例程有一个假定大小的数组作为虚拟参数(以便能够作用于传递数组的“中间”,如 C 指针),但它无法编译。这是一个简单的例子:

module foo

  interface sub
     module procedure isub
     module procedure dsub
  end interface

  contains

  subroutine isub(a,n)
    integer, intent(in) :: a(*), n
    integer :: i
    print*, 'isub'
    do i=1,n
     print*, a(i)
    enddo
  end subroutine isub

  subroutine dsub(a)
    real(8), intent(in) :: a(*)
    integer, intent(in) :: n
    integer :: i
    print*, 'dsub'
    do i=1,n
     print*, a(i)
    enddo
  end subroutine dsub

end module foo

program test

  use foo

  implicit none

  integer :: ai(4)
  real(8) :: ad(4)

  ai=(/1,2,3,4/)
  ad=(/1.,2.,3.,4./)

  call sub(ai,3)
  call sub(ad,3) …
Run Code Online (Sandbox Code Playgroud)

arrays generic-programming fortran90

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

C++:有没有办法确保编译器调用两次相同的 const 方法给出相同的结果?

我对以下两个简单的片段感到困惑:

#include <vector>

struct A{
    int foo(int i) const {return v[i];}

    std::vector<int> v;
};

int f(const A &a, int i) {
    int j;
    j=a.foo(i);
    j=a.foo(i);
    return j;
}
Run Code Online (Sandbox Code Playgroud)

它给出了汇编代码:

movsxd  rax, esi
mov     rcx, qword ptr [rdi]
mov     eax, dword ptr [rcx + 4*rax]
ret
Run Code Online (Sandbox Code Playgroud)

movsxd  rax, esi
mov     rcx, qword ptr [rdi]
mov     eax, dword ptr [rcx + 4*rax]
ret
Run Code Online (Sandbox Code Playgroud)

这使:

push    rbp
push    rbx
push    rax
mov     ebp, esi
mov     rbx, rdi
call    _ZNK1A3fooEi
mov     rdi, rbx …
Run Code Online (Sandbox Code Playgroud)

c++ optimization assembly inline pure-function

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

从派生指针调用虚函数而不支付vtable价格

考虑这个简单的例子:

class Base {
    virtual void foo() {};  
};

class Derived: public Base {
    void foo() {}; 
}; 

Base    *b = new Derived;
Derived *d = new Derived;
b->foo();
d->foo();
Run Code Online (Sandbox Code Playgroud)

我的问题是:通过派生类指针调用在基类(但不在派生类中)中声明为虚拟的成员函数是否使用vtable机制(并付出代价)?在示例中b->foo()使用vtable机制来调用Derived::foo(),但是d->foo()

如果是,那么如何规避这种行为:当明确使用Derived指针时,我想直接调用该Derived::foo()方法而不支付vtable的成本,就像基类不存在一样?

c++ polymorphism performance vtable

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

在Linux主机上运行Windows容器

我在Ubuntu 16.04上安装了Docker CE,当我尝试时:

docker pull microsoft/windowsservercore
Run Code Online (Sandbox Code Playgroud)

它失败:

Using default tag: latest
latest: Pulling from microsoft/windowsservercore
3889bb8d808b: Pulling fs layer 
da87b55a9b63: Pulling fs layer 
image operating system "windows" cannot be used on this platform
Run Code Online (Sandbox Code Playgroud)

是否可以在具有docker的Linux主机上运行Windows映像?如果是,我该怎么办?

linux windows cross-platform docker

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

以“auto &amp;&amp;”作为函数返回类型的推导类型

在下面的代码片段中,函数B::f()是函数的“包装器” A::f()。但我假设A::f()返回类型是一种“不透明”类型,我不知道它是否具有值或引用语义。所以我不能使用autoorconst auto &作为 的返回类型B::f()。我认为这auto &&可以解决问题,但它并不像auto &&推断的那样A::OpaqueType &......这里是否可以避免写作A::OpaqueType

#include <iostream>

struct A {
    using OpaqueType=int; // But it could have been `const int &`

    OpaqueType f() const {
        return i;
    }

    int i=42;
};

struct B {
    // how could I use `auto` here to avoid writing the `A::OpaqueType`?
    // I would have expected that `auto &&` would do the trick …
Run Code Online (Sandbox Code Playgroud)

c++ auto type-deduction return-type-deduction c++17

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