小编Ray*_*ond的帖子

如何让IDEA自动导入pom.xml并定义Annotation Processors

我使用的是QueryDsl,所以我的源码依赖于生成的代码.

第一

每当IDEA(auto)导入pom.xml时,以下设置始终为空:

构建,执行,部署 - >编译器 - >注释处理器 - >注释处理器

我必须手动设置它,这非常麻烦.

第二

我有使用QueryDsl的多模块,我希望将其分组到com.mysema.query.apt.jpa.JPAAnnotationProcessor应用了QueryDsl的一个配置文件中.

构建,执行,部署 - >编译器 - >注释处理器 - >配置文件

我目前必须手动将这些模块分组到一个配置文件中.

我还必须编写自述文件并通知所有成员按照指南手动设置IDEA.


如何配置pom.xml,以便IDEA可以自动填充这两个设置?

java intellij-idea querydsl

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

哪个编译器用于生成Microsoft Office for Mac?

我们知道Microsoft Office有Mac版.

只是好奇,谁知道哪个编译器用于生成Microsoft Office for Mac?

当我查看Windows SDK标题"Windows.h"时,我发现以下代码片段:

#ifndef _MAC
#if defined(_68K_) || defined(_MPPC_)
#define _MAC
#endif
#endif
Run Code Online (Sandbox Code Playgroud)

Microsoft是否有适用于Mac的私有C++编译器?如果是这样,我猜编译器必须支持COM(组件对象模型),而gcc则不支持.('支持'表示产品符合COM标准的C++对象)

c++ compiler-construction com macos

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

我们应该将COM中的BSTR类型视为值还是引用?

从书籍ATL Internals,我知道BSTR与OLECHAR*不同,并且BSTR有CComBSTR和CString.

根据MSTR为BSTR分配和释放内存,我知道调用者/被调用者的内存管理责任.

从MSDN获取此行,

HRESULT CMyWebBrowser::put_StatusText(BSTR bstr)

我仍然不知道如何bstr在我的实现中正确处理.因为我仍然有BSTR的基本问题 - 我们应该将其bstr视为值(如int)或作为引用(如int*),至少在COM接口边界上.

我希望在我的实现中尽快将BSTR转换为CString/CComBSTR.对于转换,值或引用语义将完全不同.我已经深入研究CComBSTR.Attach,CComBSTR.AssignBSTR等.但代码无法解决我的疑虑.

MSDN CComBSTR.Attach有一些代码片段,我觉得这是错误的,因为它不服从BSTR的分配和释放内存.ATL Internals表示SetSysString将'释放传入的原始BSTR',如果我使用它,它将违反BSTR参数约定,就像CComBSTR.Attach一样.

总而言之,我想在实现中使用CString来处理原始BSTR,但是不知道正确的方法......我在我的项目中写了一些正常的工作代码,但我总是感到紧张,因为我不知道是否我是对的.

我来谈谈编码语言

HRESULT CMyWebBrowser::put_StatusText(BSTR bstr)
{
// What I do NOT know
CString str1;  // 1. copy bstr (with embeded NUL)
CString str2;  // 2. ref bstr

// What I know
CComBSTR cbstr1;
cbstr1.AssignBSTR(bstr); // 3. copy bstr 
CComBSTR cbstr2;
cbstr2.Attach(bstr); // 4. ref bstr, do not copy

// What I do NOT know
// Should …
Run Code Online (Sandbox Code Playgroud)

c++ com atl bstr cstring

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

如何在函数内获取函数返回地址?

我想在我的跟踪器中打印返回值,有两个问题

  1. 如何获取退货地址?
  2. 返回位置在 ~Tracer() 之前或之后更新?

这里需要文本,以便 Stackoverflow 格式化代码:

struct Tracer
{
  int* _retval;
  ~Tracer() 
  { printf("return value is %d", *_retval); }
};


int foo()
{
  Tracer __tracter = { __Question_1_how_to_get_return_address_here__ };

  if(cond) {
     return 0;
  } else {
     return 99;
  }

  //Question-2: 
  // return postion is updated before OR after ~Tracer() called ???
}
Run Code Online (Sandbox Code Playgroud)

c++ gcc visual-c++

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

复制同名属性的简单代码?

我有一个问题在我脑海中存在了很长时间。当我在 Spring 中编写代码时,有很多 DTO、域对象的脏代码和无用代码。对于语言层面,我对 Java 无望,但在 Kotlin 中看到了一些曙光。这是我的问题:

样式 1 我们通常会编写以下代码(Java、C++、C#、...)

    // annot: AdminPresentation 
    val override = FieldMetadataOverride()
    override.broadleafEnumeration = annot.broadleafEnumeration
    override.hideEnumerationIfEmpty = annot.hideEnumerationIfEmpty
    override.fieldComponentRenderer = annot.fieldComponentRenderer
Run Code Online (Sandbox Code Playgroud)

Sytle 2之前的代码可以通过T.apply()在 Kotlin 中使用来简化

    override.apply {
        broadleafEnumeration = annot.broadleafEnumeration
        hideEnumerationIfEmpty = annot.hideEnumerationIfEmpty
        fieldComponentRenderer = annot.fieldComponentRenderer
    }
Run Code Online (Sandbox Code Playgroud)

Sytle 3 这样的代码甚至可以简化成这样吗?

    override.copySameNamePropertiesFrom (annot) { // provide property list here
        broadleafEnumeration
        hideEnumerationIfEmpty
        fieldComponentRenderer
    }
Run Code Online (Sandbox Code Playgroud)

第一优先要求

  1. property name只提供一次清单
  2. property name提供正常的代码,以便我们可以得到IDE自动完成功能。

第二优先要求

  1. 最好避免样式 3 的运行时成本。(例如,“反射”可能是一种可能的实现,但它确实会引入成本。)
  2. 它更喜欢直接生成像 style1/style2 这样的代码。

不关心

  1. 样式 …

java spring kotlin

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

如何通过C++预处理器#include包含部分文件

我想引用一些不是由我维护的稳定库代码.实际上它是一些MFC代码片段.

但是,每当我想要包含代码片段时,我都需要#include整个文件,因此我必须包含其他内容,然后是整个MFC ...结果是不可接受的.

目前,我将代码片段复制/粘贴到我的项目中,但我感到很可耻.我可以通过C++预处理器引用文件的一部分吗?

即使代码与特定的MFC版本硬连接,也比在我的项目中复制它们更好.有了这样的硬链接,我就会知道它来自MFC并节省我的时间来检查它们.

有一些超级#include用法吗?


我们能写点什么吗?

#include  "foo.h" line [12, 55)
Run Code Online (Sandbox Code Playgroud)

这意味着包括foo.h的第22行到第54行

c++ include c-preprocessor

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

如何在C#中声明编译时常量函数

在C++中,我们可以使用宏或constexpr(如C++ 11所述).我们在C#中可以做些什么?

有关上下文,请参阅"无法声明..."注释:

static class Constant
{
    // we must ensure this is compile time const, have to calculate it from ground...
    public const int SIZEOF_TEXUTRE_RGBA_U8C4_640x480 = 4 * sizeof(byte) * 640 * 480;

    // Cannot declare compile time constant as following in C#
    //public const int SIZEOF_TEXUTRE_RGBA_U8C4_640x480_2 = 4 * PixelType._8UC4.PixelSize() * 640 * 480;
}

public static class PixelTypeMethods
{
    public static /*constexpr*/ int PixelSize(this PixelType type)
    {
        int value = (int)type;
        int unit_size = value & 0xFF; …
Run Code Online (Sandbox Code Playgroud)

c# compilation const constexpr

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

如何在C#泛型类中调用类型转换运算符?

看来我们不能在C#泛型类中轻松调用类型转换运算符.这是代码.为什么?

T006最终归档我们的目标.

using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
using System.Reflection;
using System.Linq;

namespace ConsoleApplication1
{
    class vec<T, T2> : List<T> where T : class
    {
        public vec(IEnumerable<T2> other)
        {
            //Converter<T2, T> cvt = (v) => (T)v; // T004 failed, try defined function dynamicly, cannot compile, too.

            // T006 pass, client happy, we not happy, but anyway passed, performance may not happy.
            var conversionOperator = typeof(T).GetMethods(BindingFlags.Static | BindingFlags.Public)
                                    .Where(m => m.Name == "op_Explicit" || m.Name == "op_Implicit") …
Run Code Online (Sandbox Code Playgroud)

c# generics type-conversion operator-keyword

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