小编Thi*_*tio的帖子

如何处理Phoenix中的模式多态?

在Phoenix中处理多态关联的推荐方法似乎是添加一个包含对其他模式的引用的中间模式:

所以,如果我想用不同种类的动物创建模式,我会这样做:

defmodule Animal do
  use Ecto.Model

  schema "animals" do
    belongs_to(:dog, Dog)
    belongs_to(:cat, Cat)
    belongs_to(:owner, PetOwner)
  end
end

defmodule Dog do
  use Ecto.Model

  schema "dogs" do
  end
end

defmodule Cat do
  use Ecto.Model

  schema "cats" do
  end
end

defmodule PetOwner do
  use Ecto.Model

  schema "pet_owners" do
    has_one(:pet, Animal)
  end
end
Run Code Online (Sandbox Code Playgroud)

但我也可以使用PetOwner包含二进制字段和类型的模式:

defmodule Dog do
  use Ecto.Model

  schema "dogs" do
  end
end

defmodule Cat do
  use Ecto.Model

  schema "cats" do
  end
end

defmodule PetOwner do
  use …
Run Code Online (Sandbox Code Playgroud)

elixir polymorphic-associations ecto phoenix-framework

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

如何从CMake中隐藏Visual Studio中的目标

我正在用CMake生成一个.sln.我想使用Google Test并使用这种代码添加新测试:

add_executable(my_test test/my_test.cpp)
target_link_libraries(my_test gtest gmock_main)
add_test(NAME my_test COMMAND my_test)
Run Code Online (Sandbox Code Playgroud)

它工作正常,但是当我打开我的.sln时,我将所有目标都出现在解决方案资源管理器中:库,单元测试等.

有没有办法隐藏这些目标?

c++ cmake googletest visual-studio

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

何时可以/将在C++中内联函数?可以强制内联行为吗?

我试图在使用关键字时获得预期的行为inline.我尝试在不同的文件中调用函数,模板化函数,使用内联函数的不同实现,但无论我做什么,编译器都不会内联函数.

那么在哪种情况下,编译器是否会选择在C++中内联函数?

这是我尝试过的代码:

inline auto Add(int i) -> int {
  return i+1;
}

int main() {  
  Add(1);  
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我得到:

Add(int):
    pushq   %rbp
    movq    %rsp, %rbp
    movl    %edi, -4(%rbp)
    movl    -4(%rbp), %eax
    addl    $1, %eax
    popq    %rbp
    ret
main:
    pushq   %rbp
    movq    %rsp, %rbp
    movl    $1, %edi
    call    Add(int)
    movl    $0, %eax
    popq    %rbp
    ret
Run Code Online (Sandbox Code Playgroud)

或者,

template<typename T>
inline auto Add(const T &i) -> decltype(i+1) {
  return i+1;
}

int main() {  
  Add(1);  
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我得到了: …

c++ gcc clang compiler-optimization

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