我在这里看到很多关于函数式语言和东西的讨论.你为什么要使用"传统"语言?他们做得更好?他们更糟糕的是什么?什么是理想的函数式编程应用程序?
使用Win32 API(在C中,但这是无关紧要的)如何判断给定窗口(由HWND标识)是否具有焦点?我正在挂钩观看活动的应用程序,当该事件发生时,我想检查应用程序是否已经有焦点.如果没有,我想要闪烁窗口,直到它们为焦点.
或者,FlashWindowEx结构标志FLASHW_TIMERNOFG闪烁,直到窗口具有焦点,如果窗口已经具有焦点,则不闪烁?我现在无法测试这个,因为我不在我的开发环境中,但我的印象是它会闪现,这正是我想要避免的.
编辑:此外,如果重要,应用程序在此窗口中使用DirectX.
有没有办法禁止使用ClickOnce发布调试版本?
我只想允许发布版本,但是现在人为错误导致调试版本偶尔会漏掉.
我们正在Visual Studio中发布构建.
我在GCC 4.3.2的C++ 11的半实现中玩TMP,我想知道是否有办法以某种方式执行以下操作:
template <char x, char... c>
struct mystruct {
...
};
int main () {
mystruct<"asdf">::go();
}
Run Code Online (Sandbox Code Playgroud)
它显然不会让我这样做,我认为通过在编译时使用用户定义的文字转换"asdf"字符串我会很幸运,但GCC 4.3不支持用户定义的文字...
有什么建议?我宁愿不做'a','s','d','f',因为这严重妨碍了我对这个项目的计划.
以下代码在 C++17 标准下的 Clang/GCC 下编译,但在带有-std:C++17 /Zc:ternary
.
struct CStringPtr
{
const char *m_pString = nullptr;
CStringPtr() = default;
CStringPtr( const char *pString ) : m_pString( pString ) { }
operator const char *() const { return m_pString; }
};
int main( int argc, char ** )
{
bool b = !!argc;
const char *X = b ? CStringPtr( "inside" ) : "naked";
const char *Y = b ? "naked" : CStringPtr( "inside" );
CStringPtr Z = b ? CStringPtr( …
Run Code Online (Sandbox Code Playgroud) 我有一个Visual Studio 2008插件,当我按下某个热键时,它会打开一个特定的文件(根据热键的上下文不同),然后在该文件中搜索特定的字符串(同样,依赖于上下文.)大多数时候这完美无瑕,但有时如果它打开的文件太大,搜索将失败.
这是一段代码:
Window xmlWindow = Commands.Application.ItemOperations.OpenFile(objectFilename, EnvDTE.Constants.vsViewKindPrimary);
Find find = xmlWindow.Document.DTE.Find;
find.Action = vsFindAction.vsFindActionFind;
find.FindWhat = String.Format("Name=\"{0}\"", objectLocalName);
if (find.Execute() == vsFindResult.vsFindResultFound) {
MessageBox.Show("Found!");
}
Run Code Online (Sandbox Code Playgroud)
1.有没有办法让它始终有效(例如通过阻止OpenFile)?
2.在一个不那么重要的注意事项中,有没有一种方法可以像这样进行搜索而不会在"查找结果"窗格中显示结果(这会导致我的旧结果被此搜索清除,该搜索仅用于将光标移至那部分文件)?
标准是否保证以下代码安全std::string
?
#include <string>
#include <cstdio>
int main()
{
std::string strCool = "My cool string!";
const char *pszCool = strCool.c_str();
strCool = pszCool;
printf( "Result: %s", strCool.c_str() );
}
Run Code Online (Sandbox Code Playgroud)
我见过一些声明,表明c_str
只有在对同一结果std::string
进行另一个方法调用之前才能保证安全使用,但我不清楚将其传递const char *
回赋值方法是否安全。
当使用现实世界的编译器(GCC、Clang 和 MSVC 的最新版本)进行测试时,它们似乎都支持这种行为。
此外,编译器还支持将字符串的后缀分配回其自身,例如strCool = pszCool + 3
在本例中;结果将是该字符串与传递给它的值具有相同的值。
这种行为是否以某种方式得到保证,或者我只是幸运的是我测试过的编译器提供的标准库支持这种情况?