问题列表 - 第28450页

为什么这个C或C++宏没有被预处理器扩展?

当用gcc 4.1.0编译时,有人能指出代码中的问题.

#define X 10
int main()
{
  double a = 1e-X;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我收到错误:指数没有数字.

当我用10替换X时,它工作正常.我还用g ++ -E命令检查了应用了预处理器的文件,它没有用10替换X.我的印象是预处理器用替换文本替换文件中定义的每个宏并应用任何智能.我错了吗?

我知道这是一个非常愚蠢的问题,但我很困惑,我宁愿愚蠢而不是困惑:).

有什么意见/建议吗?

c c++ macros c-preprocessor

31
推荐指数
4
解决办法
7761
查看次数

从Class <T>到Thing <T>的类型安全映射

我想制作一个具有以下界面的地图类容器:

public <T> Thing<T> get(Class<T> clazz);
public <T> void put(Class<T> clazz, Thing<T> thing);
Run Code Online (Sandbox Code Playgroud)

有趣的是,T每个Class<T>- > Thing<T>对中的s 是相同的T,但容器应该能够容纳许多不同类型的对.最初我尝试了一个(哈希)地图.但是,例如,

Map<Class<T>, Thing<T>>
Run Code Online (Sandbox Code Playgroud)

是不对的,因为那个地图中的所有都是T一样T的.当然,

Map<Class<?>, Thing<?>>
Run Code Online (Sandbox Code Playgroud)

工作,但后来我没有类型安全保证,所以当我get(String.class),我不能确定我得到一个Thing<String>实例.

有没有一种明显的方法来实现我正在寻找的那种类型的安全性?

java generics mapping type-safety

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

如何为子字符串的开头指定动态位置?

如示例中所示,我正在尝试substring使用data.frame(video_data_2)中的Video_full列.我希望在这段时间之后保留所有角色.期间始终存在,只有一个期间,并且该列的每个值处于不同的位置.

     Date                     Video_full      Instances   
1 Apr 1, 2010  installs/AA.intro_video_1      546         
2 Apr 1, 2010  installs/ABAC.intro_video_2    548      
Run Code Online (Sandbox Code Playgroud)

我有子串工作:

video_data_2$Video_full <- substring(video_data_2$Video_full,11)
Run Code Online (Sandbox Code Playgroud)

而且strsplit:

strsplit("installs/AA.intro_video_1 ",'[.]')
Run Code Online (Sandbox Code Playgroud)

我只是无法弄清楚如何substring在动态位置启动或仅保留返回的第二个值strsplit.

感谢您为简单问题提供的任何帮助.

r

5
推荐指数
3
解决办法
2778
查看次数

如何给一个给出类名的枚举"valueOf"?

假设我有一个名为Animal的简单Enum定义为:

public enum Animal {
    CAT, DOG
}
Run Code Online (Sandbox Code Playgroud)

我有一个方法,如:

private static Object valueOf(String value, Class<?> classType) {
    if (classType == String.class) {
        return value;
    }

    if (classType == Integer.class) {
        return Integer.parseInt(value);
    }

    if (classType == Long.class) {
        return Long.parseLong(value);
    }

    if (classType == Boolean.class) {
        return Boolean.parseBoolean(value);
    }

    // Enum resolution here
Run Code Online (Sandbox Code Playgroud)

}

我可以在这个方法中放入什么来返回我的枚举实例,其中value是classType的?

我看过尝试:

    if (classType == Enum.class) {
        return Enum.valueOf((Class<Enum>)classType, value);
    }
Run Code Online (Sandbox Code Playgroud)

但这不起作用.

java enums

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

依赖属性强制绑定问题

我安装了VS2008和VS2010,我看到了一个非常奇怪的行为

在VS2008中,我有一个简单的WPF应用程序:

<TextBox x:Name="textbox" Text="{Binding Path=MyProperty,Mode=TwoWay}"></TextBox>
Run Code Online (Sandbox Code Playgroud)

public Window1()
{
    InitializeComponent();
    DataContext = this;
}
public string MyProperty
{
    get { return (string)GetValue(MyPropertyProperty); }
    set { SetValue(MyPropertyProperty, value); }
}
public static readonly DependencyProperty MyPropertyProperty = DependencyProperty.Register("MyProperty", typeof(string), typeof(Window1), new PropertyMetadata("default",null,Coerce));

private static object Coerce(DependencyObject d, object baseValue)
{
    return "Coerced Value";
}
Run Code Online (Sandbox Code Playgroud)

当我在文本框中输入随机字符串并点击标签时,我希望textbox.Text重置为"Coerced Value".如果我调试我看到应用程序在Coerce功能中断,但UI没有更新.

有趣的是,这个相同的代码在VS2010中工作,UI使用Coerced值进行更新.任何人都有想法发生了什么?

它是WPF错误吗?还是我错过了什么?

c# data-binding xaml coercion

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

有没有办法从它的消息中获取提交的SHA?

在做一个时git tag,我并不总是很记得HEAD~6(例如)是包容性的还是排他性的.

鉴于我的大部分提交都以问题编号为前缀,我想知道是否有一些魔术命令用于从其部分消息中搜索提交SHA.

我知道git log从那里开始工作很容易,但我想要更容易:)

编辑:有人也提出了相反的问题:在Git中,有没有办法获得任意提交的"友好"名称?

git

12
推荐指数
2
解决办法
3324
查看次数

struct/class成员的显式初始化

struct some_struct{
    int a;
};
some_struct n = {};
Run Code Online (Sandbox Code Playgroud)

na之后会是0;

我知道这种大括号形式的初始化是从C继承的,并且支持与C程序兼容,但这只能用C++编译,而不能用C编译器编译.我正在使用Visual C++ 2005.

在C这种类型的初始化

struct some_struct n = {0};
Run Code Online (Sandbox Code Playgroud)

是正确的,并将零初始化结构的所有成员.

是一对空的大括号形式的初始化标准?我首先在msdn的WinAPI教程中看到了这种初始化形式.

c c++ struct initialization

13
推荐指数
2
解决办法
6600
查看次数

JavaScript中的选择器

我想得到这段代码的对象,

<input class="radio" 
       id="conversation_sub_kind_id_208"
       name="conversation[sub_kind_id]"
       onclick="set_department_name('department_name208')"
       type="radio"
       value="208" />
Run Code Online (Sandbox Code Playgroud)

我想使用jQuery Framework来获取对象,就像document.getElementbyTagName("conv...");我应该在这里做什么一样?感谢你并致以真诚的问候!

javascript jquery

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

使用MVVM,如何将XamDataGrid的SelectedItems作为参数传递给ContextMenu引发的Command?

我正在尝试在XamDataGrid上传递项目,我右键单击鼠标右键以打开ContextMenu,它在我的ViewModel中引发了一个Command.不知何故,Command调用的方法在调试模式下无法访问.

这是从视图中剪断的

<ig:XamDataGrid DataSource="{Binding DrdResults}" Height="700" Width="600">
  <ig:XamDataGrid.ContextMenu>
    <ContextMenu DataContext="{Binding RelativeSource={RelativeSource Mode=Self},
                               Path=PlacementTarget.DataContext}"
                 AllowDrop="True" Name="cmAudit">
      <MenuItem Header="View History" 
                Command="{Binding ViewTradeHistory}"
                CommandParameter="{Binding Path=SelectedItems}">
      </MenuItem>
    </ContextMenu>
  </ig:XamDataGrid.ContextMenu>
  <ig:XamDataGrid.FieldSettings>
    <ig:FieldSettings AllowFixing="NearOrFar"
                      AllowEdit="False" 
                      Width="auto" Height="auto"  />
  </ig:XamDataGrid.FieldSettings>
</ig:XamDataGrid>
Run Code Online (Sandbox Code Playgroud)

此View的相应ViewModel中的代码如下所示.

public WPF.ICommand ViewTradeHistory
{
  get
  {
    if (_viewTradeHistory == null)
    {
      _viewTradeHistory = new DelegateCommand(
      (object SelectedItems) =>
      {
        this.OpenTradeHistory(SelectedItems); 
      });
    }
    return _viewTradeHistory;
  }
}
Run Code Online (Sandbox Code Playgroud)

最后,命令调用的实际方法如下所示

private void OpenTradeHistory(object records)
{
  DataPresenterBase.SelectedItemHolder auditRecords
    = (DataPresenterBase.SelectedItemHolder)records;
  // Do something with the auditRecords now.
}
Run Code Online (Sandbox Code Playgroud)

我不确定我在这里做错了什么.任何帮助将非常感谢. …

c# wpf contextmenu mvvm xamdatagrid

5
推荐指数
3
解决办法
2万
查看次数

谷歌CDN没有gzipping jquery

如果我在这里导航:http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js

我使用Firefox 3.6.3下载70k,我可以确认它正在发送Accept-Encoding:gzip.

如果我使用Microsoft的:http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js

我下载30k(它来自内容编码:gzip)

在常规站点(例如jquery.com)中使用jquery 1.4.2时,我也遇到了这种情况.很有趣的是,在google cdn上引用jquery 1.3.2的堆栈溢出正在通过gzip压缩.

为什么会这样?这是谷歌的某种问题还是我错过了什么?

我住在澳大利亚墨尔本.

编辑:oops混淆了链接.嗯http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js对我有用..看起来它只是1.4包含一个

jquery gzip cdn

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