标签: compiler-directives

在Angular中使用指令呈现html

我正在从WYSIWYG编辑器的输出中将html数据存储在我的数据库中.html还存储了一些指令的html.其中一个是ui-bootstrap工具提示:

<span tooltip-placement="left" tooltip="On the Left!">Tooltip text here</span>
Run Code Online (Sandbox Code Playgroud)

我可以通过使用绑定来获取任何其他html元素:

<div ng-bind-html-unsafe="html.content"></div>
Run Code Online (Sandbox Code Playgroud)

但是带有指令引用的html不与实际指令交互.

我怎样才能使该指令起作用?

我是否必须编译html或类似的东西?

javascript compiler-directives angularjs

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

我可以告诉nvcc将#pragma unroll应用于函数中的所有循环吗?

我有一个CUDA内核,有一堆我想要展开的循环.现在我做:

void mykernel(int* in, int* out, int baz) {    
    #pragma unroll
    for(int i = 0; i < 4; i++) {
        foo();
    }
    /* ... */
    #pragma unroll
    for(int i = 0; i < 6; i++) {
        bar();
    }
}
Run Code Online (Sandbox Code Playgroud)

等等.我想告诉(提示)我的C/C++编译器展开所有这些循环,而不需要为每个循环单独提示.但是,我不希望在该函数中展开文件中所有代码中的所有循环.

如果这是GCC,我可以这样做:

__attribute__((optimize("unroll-loops")))
void mykernel(int* in, int* out, int baz) {    
    for(int i = 0; i < 4; i++) {
        foo();
    }
    /* ... */
    for(int i = 0; i < 6; i++) {
        bar();
    }
}
Run Code Online (Sandbox Code Playgroud)

或者使用选项push-and-popping.我能用CUDA做些什么吗?

c++ optimization cuda compiler-directives loop-unrolling

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

C编程指令#include <stdio.h> printf

我有这个简单的你好世界计划.它说的第一行#include <stdio.h>.

我用谷歌搜索它,它基本上告诉预处理器定义输入/输出的功能.

第一个问题:
我读到函数的实际代码首先编译为目标文件.所以,如果我说#include <foo.bar>自动 linkes该目标文件?

第二个问题:
当我删除包含时,该程序仍然有效......我的意思是printf声明......为什么?

c linker compiler-directives include c-preprocessor

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

在代码中本地化g ++编译选项

我正在寻找一种简单的方法来将某些g ++(g ++ - 4.9特定的)编译选项本地化到某些代码行或至少是目标函数.我感兴趣一般来说,还特意到-fast-math,-ffinite-math-only-fno-signed-zeros选项.

我认为可以使用make实用程序在*.cpp文件级别进行本地化,但我希望有一种方法可以在代码本身中通过#pragma或__attribute__等来启用它.我想这样做不仅可以最大限度地减少对外部文件的依赖性(即不正确的风险makefile),而且还希望将某些FP行为超本地化为函数内的特定方程.

或者,如果不能通过内联指令本地化FP行为,如果在项目构建中未启用所需的编译器指令(例如makefile丢失或不适当地修改),我该怎么做才能至少触发编译时错误.

我认为这种内联优化可能是编译器特定的,在这种情况下是g ++,但这是我愿意采取的妥协.

pragma compiler-directives compiler-optimization c++11 g++4.9

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

将.h文件中的#defines移植到C#应用程序的最佳做法是什么?

我正在将应用程序从C++转换为C#.C++应用程序有一个定义文件.h,有超过500个#define指令.我想在Definition.cs文件中表示此数据.做这个的最好方式是什么?

定义的一个例子:

//Digital ouputs
#define FLAGLEDCOOL             "BIT12032"
#define FLAGLEDLASERINTLK       "BIT12036"
#define FLAGLEDLASERSTANBDY     "BIT12038"
...

//Digital inputs
#define FLAGSTATUSINTLKRELAY    "BIT11535"
#define FLAGSTATUSEMERGRELAY    "BIT11533"
#define FLAGSTATUSKVMRELAY      "BIT11531"
...
Run Code Online (Sandbox Code Playgroud)

#defines被分组,因此这让我想到使用属性,例如:

public class DigitalOuputs
{
    public static string FLAGLEDCOOL { get; }
    public static string FLAGLEDLASERINTLK { get; }
    public static string FLAGLEDLASERSTANBDY { get; }
    ...
}

public class DigitalInputs
{
    public static string FLAGSTATUSINTLKRELAY { get; }
    public static string FLAGSTATUSEMERGRELAY { get; }
    public static string FLAGSTATUSKVMRELAY { get; } …
Run Code Online (Sandbox Code Playgroud)

c# c++ compiler-directives

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

Delphi CompilerVersion指令问题

我有一个库代码文件,在Delphi 5和DelphiXE2之间共享.我试图在代码文件中添加匿名方法功能,但仅适用于DelphiXE2项目(因为Delphi 5不支持匿名方法).我似乎应该可以使用CompilerVersion(注意:我不想将它限制为DelphiXE2,以防我们升级).

{$IF CompilerVersion >= 23}
  {$DEFINE AnonymousAvail}
{$IFEND}
Run Code Online (Sandbox Code Playgroud)

这在XE2中运行良好,但事实证明,Delphi 5不支持$ IF指令.我决定将它包装在$ IFDEF中.这在Delphi 5中运行良好,但XE2似乎也没有定义CompilerVersion,因此AnonymousAvail没有定义.

{$IFDEF CompilerVersion}
  {$IF CompilerVersion >= 23}
    {$DEFINE AnonymousAvail}
  {$IFEND}
{$ENDIF}
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.

注意:我无法将匿名方法代码移动到其他代码文件.

delphi compiler-directives delphi-5 delphi-xe2

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

如何为所有私有/受保护方法生成Rtti信息?

一直在努力解决这个问题,似乎无法找到解决方法.我使用的是Delphi XE-2.

我需要为给定包中的所有类生成私有/受保护方法的Rtti Info.

默认情况下,Delphi似乎只为公共和已发布的方法生成Rtti.

如果我将以下指令添加到包含类的Unit,则为私有和受保护字段生成Rtti,但仅为该类生成.

{$RTTI METHODS([vcPublic, vcProtected, vcPrivate])}
Run Code Online (Sandbox Code Playgroud)

我不想将此指令添加到每个单元.

我将指令添加到Packages .dpk文件中,但它没有任何效果.

谢谢!

delphi rtti compiler-directives delphi-xe2

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

绑定到Delphi XE4编译器的条件编译器指令是什么?

绑定到Delphi XE4编译器的条件编译器指令是什么?我虽然这样:

{$ifdef VerDXE4}
  code segment compiled only by the Delphi XE4 compiler
{$endif}
Run Code Online (Sandbox Code Playgroud)

delphi compiler-directives delphi-xe4

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

是否有任何正式的目标框架指令?

我已阅读Microsoft有关如何检测目标框架的文章,例如:

netcoreapp2.2
net47
net58 
Run Code Online (Sandbox Code Playgroud)

但是在某些情况下,我并不关心确切的版本,而是一般的框架目标:

NETCORE
.Net Framework
Run Code Online (Sandbox Code Playgroud)

但是我没有找到这样的标志。

题:

是否有任何通用标记?或更好的是,如何在不指定所有选项的情况下区分这两者?

.net compiler-directives visual-studio .net-core .net-standard

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

C 预处理器指令是否每次都重新计算?

我有这行代码:

#define ALPHABET_SIZE 'z' - 'a' + 1
Run Code Online (Sandbox Code Playgroud)

当我将鼠标悬停在代码中的任意位置 ALPHABET_SIZE 上时,它告诉我它扩展到'z' - 'a' + 1. 所以我想知道每次在我的代码中使用 ALPHABET_SIZE 时是否必须重新计算这个表达式?如果是这样,我怎样才能防止重新计算?

c preprocessor compiler-directives

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

有人可以解释 C 使用 #define UMAX (a, b) ((a) &gt; (b) ? (a) : (b)) 指令的硬逻辑错误,该指令返回较低的值,在 2 个编译器中

我试图找出发生在 MUD c 代码库上的错误的原因。其中 #define UMAX(a, b) ((a) > (b) ? (a) : (b)) 的使用用于返回两个值的最大值。它有时会返回较低的值,甚至调试我也找不到原因。

我隔离了复制的相关代码并在两个编译器中运行它,https ://www.tutorialspoint.com/compile_c_online.php (GCC) 上的在线 C 编译器和使用 Visual Studio 2019。两者都有以下代码吐出负值:

dur = UMAX(0, 4 - number_fuzzy(level / 10));
printf("Dur = %i\n", dur);
Run Code Online (Sandbox Code Playgroud)

基本上,UMAX 用于防止计算中出现非负值。我们将级别除以 10,然后使用模糊/随机函数将其随机更改为 -1/+0/+1。我们从 4 中减去这个值,如果该值小于零,我们使用 UMAX 返回 0。但是对于 50 到 59 级,这有时会产生负值,如下所示。但我从未见过它对 60-69 产生负面影响。我知道模糊随机是随机改变值,但 UMAX 守卫应该始终有效,而不仅仅是某些级别。

完整代码如下:

//==================================================================
//= SLAP ME ON https://www.tutorialspoint.com/compile_c_online.php =
//==================================================================

#include <stdio.h>
#include<time.h> // pd 5

#define UMAX(a, b)      ((a) > (b) ? (a) : (b))
#define …
Run Code Online (Sandbox Code Playgroud)

c compiler-directives compiler-bug

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

省略代码:条件属性和预处理指令之间的任何区别?

我想知道它们之间有什么区别

#define MYSYMBOL

#if MYSYMBOL
public void foo () {

    // ...
}
#endif
Run Code Online (Sandbox Code Playgroud)

#define MYSYMBOL

[Conditional("MYSYMBOL")]
public void foo () {

    // ...
}
Run Code Online (Sandbox Code Playgroud)

也许这是显而易见的,但如果有人能给我一个正确方向的提示,我会很感激:)

c# debugging compiler-directives c-preprocessor

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

在C++中使用编译器指令

#define编译器指令对我来说似乎很奇怪.我已经读过没有分配内存.

#include <iostream>
#define test 50
int main()
{
    cout<<test;
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

即使没有为编译器指令#define分配内存,上面的函数也会显示50

编译器如何知道50存储在其中(测试)而没有任何内存.

c++ compiler-directives

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