我试图在IntelliJ Idea IDE中创建一个JavaFX应用程序,但我收到编译错误,说:
java:包javafx.application不存在.
我已将Project SDK和Project Language Level更改为Java 8,重新加载项目但它没有帮助.然后我检查了设置中是否启用了JavaFX插件.
在Google和StackOverflow上的搜索没有给我更多关于错误的想法.提前感谢您的帮助.
PS我在archlinux OS上使用IntelliJ Idea 14.0和java8.1.0_25.
如何返回存储在a中的多维数组 private我的类字段中?
class Myclass {
private:
int myarray[5][5];
public:
int **get_array();
};
// This does not work:
int **Myclass::get_array() {
return myarray;
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
无法转换
int (*)[5][5]为int**回报
什么是之间的不同join(),并detach()在C++多线程?是否join()杀死线程?
我正在开发基于Web的移动(HTML)应用程序.有没有办法检测键盘事件,如键盘可见和键盘隐藏,基于我可以控制其他屏幕布局.
我已经尝试了焦点,模糊,浏览器调整大小事件,但我的问题没有解决100%,所以我只寻找键盘事件,实际上我想在键盘可见时隐藏页脚,因为它(页脚)出现在键盘上,所以我试图在键盘可见时设置相对的页脚位置,并在键盘隐藏时将页脚位置固定.
我尝试过如下工作,但这不能解决我的问题.
$(document).ready(function () {
$("input").focus(function() {
$(".copyright_link").css("position","relative");
});
$("input").blur(function() {
$(".copyright_link").css("position","fixed");
});
});
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我解决页脚问题,或者让我知道jquery中是否有键盘事件.
从c ++ 11开始,列表初始化(包括聚合初始化)不允许缩小转换.所以基本上:
char c{1000}; // Does not compile with g++, clang, vc
Run Code Online (Sandbox Code Playgroud)
但:
std::pair<char, double> p{1000, 1.0};
Run Code Online (Sandbox Code Playgroud)
编译所有编译器?
但:
std::pair<char, double> p{1000, {1.0}};
Run Code Online (Sandbox Code Playgroud)
不用VC编译(错误C2398),用clang发出警告并用g ++静默编译...
我本来期望VC行为无处不在,即一个非允许的缩小转换会引发错误.哪个是编译器是对的?
另一方面,以下代码段中的变量声明都没有编译:
struct X {
char c;
double d;
};
X x1{999, 1.0};
X x2{999, {1.0}};
struct Y {
char c;
double d;
Y (char c, double d) : c(c), d(d) { }
};
Y y1{999, 1.0};
Y y2{999, {1.0}};
Run Code Online (Sandbox Code Playgroud)
所以我的一个猜测可能是有一些特别的东西std::pair?还有什么东西可以缩小支撑初始化?
我有以下代码:
class A {
public:
operator int() const { return 5; }
};
class B {
public:
operator int() const { return 6; }
};
int main() {
A a;
B b;
int myInt = true ? a : b;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
尝试使用Visual Studio 2017 RC编译该代码会导致以下错误:
错误C2446 ::
:没有转换B为A注意:没有可用于执行此转换的用户定义转换运算符,或者无法调用运算符
...这是令人惊讶的,因为在这种情况下,我希望它将它们转换为通用类型int.
clang (4.0)成功编译相同的代码,没有任何错误或警告.
在这种情况下,哪两个是正确的,为什么?
c++ type-conversion ternary implicit-conversion operator-keyword
以下片段:
#include <functional>
struct X {
X(std::function<double(double)> fn); // (1)
X(double, double); // (2)
template <class T>
auto operator()(T const& t) const { // (3)
return t.foo();
}
};
int main() {
double a, b;
auto x = X(a, b);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
... 当使用- 在OSX和godbolt.org上测试时,无法使用clang(4.0.1)和g++(6.3,7.2)-std=c++14进行编译.
但如果符合以下情况,它编译没有问
(1);double)(3);-> decltype(t.foo()))(3);-std=c++1z(感谢@bolov).也许有一些明显我在这里失踪的东西......这段代码有什么问题吗?这是一个错误吗?
c++ function-object std-function return-type-deduction c++14
以下代码:
std::array<int, 4> arr1;
std::array<float, arr1.size()> arr2;
Run Code Online (Sandbox Code Playgroud)
...编译两者gcc并clang因为std::array::size被考虑constexpr.
但是以下gcc版本没有编译(版本5.3.0 20151204):
std::array<std::vector<int>, 4> arr1;
std::array<std::vector<double>, arr1.size()> arr2;
Run Code Online (Sandbox Code Playgroud)
对我来说,没有理由这样的代码如果第一个有效则无法编译,但由于我没有找到很多帖子,我不知道它是一个gccbug还是一个clang扩展?
错误来自gcc(我真的不明白......):
main.cpp: In function 'int main()':
main.cpp:6:46: error: call to non-constexpr function 'constexpr std::array<_Tp, _Nm>::size_type std::array<_Tp, _Nm>::size() const [with _Tp = std::vector<int>; long unsigned int _Nm = 4ul; std::array<_Tp, _Nm>::size_type = long unsigned int]'
std::array<std::vector<double>, arr1.size()> arr2;
^
In file included from main.cpp:1:0:
/usr/local/include/c++/5.3.0/array:170:7: note: 'constexpr std::array<_Tp, …Run Code Online (Sandbox Code Playgroud) 浏览标准草案(N4527)时,我发现了以下段落([alg.c.library]):
功能签名:
Run Code Online (Sandbox Code Playgroud)bsearch(const void *, const void *, size_t, size_t, int (*)(const void *, const void *));被两个声明取代:
Run Code Online (Sandbox Code Playgroud)extern "C" void* bsearch(const void* key, const void* base, size_t nmemb, size_t size, int (*compar)(const void*, const void*)); extern "C++" void* bsearch(const void* key, const void* base, size_t nmemb, size_t size, int (*compar)(const void*, const void*));
同样的东西qsort.
我也在[dcl.link]中找到了:
如果两个声明声明具有相同名称的函数,并且参数类型列表(8.3.5)是同一命名空间的成员,或者声明具有相同名称的对象是同一命名空间的成员,并且声明为这些名称提供不同的语言链接,该计划是不正常的;
这两个extern声明相同功能的目的是什么?为什么这个区块没有形成错误?
我需要一个简单的方法来获取类的对象的数量/长度/大小T这里T是某种集合类型,如中std::map,std::list,std::vector,CStringArray,CString,std::string,...
对于大多数标准类型,T::size()是正确答案,因为大多数MFC类T::GetSize()是正确的,因为CString它是T::GetLength().
我希望有一个像:
template <typename T> auto size(const T & t)
Run Code Online (Sandbox Code Playgroud)
...评估正确的成员函数调用.
看起来应该有一种简单的方法来调用一个traits模板,在T该模板上有一个size(const T & t)成员,它本身使用SFINAE存在或不存在,如果它存在,那么根据定义调用一个适当的方法t.size_function()来返回元素的数量.那个例子T.
我可以编写一个精心设计的has_member类型 - 特征模板 - 在stackoverflow上有一些例子 - 所有这些都让我觉得很复杂"必须有一个更简单的方法".使用C++ 17,似乎应该轻松优雅地解决这个问题?
这里和这里的这些讨论似乎使用了一个不优雅的解决方案,其中一些答案使用预处理器宏来完成工作.这还有必要吗?
但是......当然,必须有一种方法可以使用这样一个事实,即在a上调用正确的成员函数T是可编译的,并且调用错误的函数无法编译 - 不能直接用于创建正确的类型特征包装器给定的类型T?
我想要的是:
template <typename T>
auto size(const T & collection) …Run Code Online (Sandbox Code Playgroud)